Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Outlook Absender auslesen

Outlook Absender auslesen
08.07.2013 12:09:58
Hans
Hallo zusammen,
habe folgenden Quellcode:
Sub Speichern()
'Version 1.1 vom 12.4.2005, überarbeitet durch Ch. Steinmann, SPiCE@EE
'Deklaration
Dim myItems As Object, myItem As Object
Dim myOrt As String, myAbsenderName As String
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
On Error Resume Next
'nur mit selektierten Mails arbeiten...
Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection
'MsgBox ("Bitte die automatische Entschlüsselung (PGP) abschalten. (Bei PGP unter 'Options - _
> Email')")
'mit allen selektierten Mails...
For Each myItem In myOlSel
If (Left(myItem.Subject, 1)  0) Then ' Am Anfang des Betreffs steht keine "0" -> Mail  _
bearbeiten
strdate = myItem.SentOn
newdate = Format(strdate, "dd.mm.yyyy")
newdate2 = Format(strdate, "ss")
If (InStr(myItem.SenderName, ",") = 0) Then 'Für alle Hella-Mails (Vorname.Nachname@ _
volkswagen.de)
'Set PunktPos = Nothing
myAbsenderName = (Left(myItem.SenderName, InStr(myItem.SenderName, "@") - 1))
myAbsenderName = (Right(myAbsenderName, Len(myAbsenderName) - InStr(myAbsenderName,  _
".")))
Else 'Für alle VW-Mails (Nachname, Vorname)
myAbsenderName = (Left(myItem.SenderName, InStr(myItem.SenderName, ",") - 1))
End If
'bearbeiteten Absendername in Grossbuchtsaben umwandeln
'myAbsenderName = StrConv(myAbsenderName, vbUpperCase)
strname = newdate & ", " & myItem.Subject & ", " & myAbsenderName
'neu vom 12.4.2005, Leerzeichen und Sonderzeichen ersetzen, damit Fileablage möglich  _
wird:
strname = Replace(strname, " ", " ")
strname = Replace(strname, "ü", "ue")
strname = Replace(strname, "ö", "oe")
strname = Replace(strname, "ä", "ae")
strname = Replace(strname, "Ü", "Ue")
strname = Replace(strname, "Ö", "Oe")
strname = Replace(strname, "Ä", "Ae")
strname = Replace(strname, "ß", "ss")
strname = Replace(strname, "/", "-")
strname = Replace(strname, "\", "-")
strname = Replace(strname, "?", "_")
strname = Replace(strname, ":", "_")
strname = Replace(strname, "*", "_")
strname = Replace(strname, """", "'")
strname = Replace(strname, ">", "_")
strname = Replace(strname, "

Der Code ist für Outlook gedacht. Wenn ich die Schaltfläche betätige soll bei der angewählten Mail das Datum, der Betreff und der Absender stehen!
Funktioniert alles bis auf den Absender: da steht immer nur der Nachname?
Ich hätte das aber gern im Format: Nachname, Vorname
Könnte mir da jemand behilflich sein? Danke Euch schon mal
LG Hans

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Stringoperationen ?
08.07.2013 12:21:58
ransi
Hallo
Ich glaube dein Problem hat sekundär mit Outlook zu tun.
Du willst irgendwelche Strings aus irgendwelchen längeren Strings extrahieren ?
Wenn ja, gib uns mal ein par Beispiele von den Strings die reinkommen und wie die Ausgabe sein soll.
Anhand deines Codes kann ich das nicht nachvollziehen.
ransi

AW: Stringoperationen ?
08.07.2013 13:43:21
Hans
Hallo ransi,
leider verstehe ich nicht genug von VBA um zu wissen was du mit Strings meinst...
Falls es dir ein Hinweis ist: Die Adressen bzw. Namen kommen aus einem globalen Adressbuch. Sind also nicht meine persönlichen Kontakte sondern die aller Mitarbeiter. Vlt ist das ja das Problem
LG Hans

Anzeige
AW: Stringoperationen ?
08.07.2013 13:59:03
firmus
Hallo Hans,
prüfe doch mal, z.B. mit msgbox, was tatsächlich im Feld olMail.SenderName steht.
Es könnte ja sein, dass hier nur der Nachname drin ist. ?
u.U. ist auch das Feld olMail.SenderEmailAddress die bessere Wahl.
Gruß
Firmus

AW: Stringoperationen ?
08.07.2013 14:02:23
Hans
Hallo Firmus,
könntest du mir bitte veraten wie und wo ich das tun kann?
Kenne mich dafür nicht genug aus...
Danke dir
LG Hans

AW: Stringoperationen ?
08.07.2013 18:26:24
firmus
Hallo Hans,
1. im VBA-Editor das Makro anzeigen und mit der Maus in das CodeFenster klicken. (beliebige Zeile)
2. Mit F8 gehst Du Instruktion für Instruktion einzeln durch.
3. Eine bestimmte Zeile anklicken und F9 drücken - damit wird ein STOP-punkt festgelegt.
Nochmals F9 hebt diese Stelle wieder auf. Es können beliebig viele Stops definiert werden.
4. Wenn eine Stopstelle festgelegt wurde, kannst Du mit F5 das Makro normal weiterlaufen lassen.
An jedem definierten STOP-Punkt - innerhalb der durchlaufenen Zeilen - hält das Makro an.
5. Mit der Maus auf eine Feldnamen draufhalten (sogar ohne Klick) zeigt den Dateninhalt dieses
Feldes genau zu diesem Laufzeitpunkt an.
6. Mit Debug/Watch kannst Du Dir im Watch-Fenster beliebige Dateninhalten zu jedem beliegigen Zeitpunkt im Ablauf anzeigen lassen.
Weitere Details Hilfethema: Debug/Watch.
Hoffe Du kommst klar damit,
Gruss
Firmus

Anzeige
AW: Stringoperationen ?
09.07.2013 11:25:03
Hans
Hallo Firmus,
habe das so gemacht wie du es mir geschrieben hattest.
Wenn ich dann mit der Maus auf das Feld für den Namen gegangen bin kam folgende Info:
myAbsenderName = "Nachname" (also da stand dann ein entsprechender Nachname drin)
? Damit hattest du wohl recht das da laut Code nur der Nachname rein gehört. Aber wie behebe ich das Problem jetzt?
LG Hans

AW: Stringoperationen (debug MyItem)
09.07.2013 20:30:57
firmus
Hallo Hans,
versuche über die Watch-Möglichkeit (markieren und in Watchfenster ansehen) "MyItem" anzusehen.
VBA wird dir das komplette MyItem dort anzeigen. Überall wo noch Felder in einer Unterstruktur sind,
ist ein "+"-Zeichen. Durch Anklicken werden die Felder darunter angezeigt.
So kannst Du sehen, ob die gewünschten Daten (Name, Vorname) überhaupt in MyItems vorhanden sind.
(Das ist nicht zwangläufig so, nur weil die Personen aus anderen Datenbeständen mit Name+Vorname bekannt sind.)
Falls in keinen Feld diese Info vorhanden ist - schlechte Karten.
Dann musst Du dir Alternativen in Deiner Lösung einfallen lassen.
Gruß
Firmus

Anzeige
AW: Stringoperationen (debug MyItem)
10.07.2013 10:52:43
Hans
Hallo Firmus,
hab das Watch Fenster geöffnet und dann gesucht, da gibt es einen Unterpunkt (mit + davor) mit der Bezeichnung "Sender". Unter diesem Punkt befinden sich 3 weitere Unterpunkte: "SenderEmailAddress" "SenderEmailType" und "SenderName"
Bei SenderName steht genau das was ich möchte: Name, Vorname
Ich denke also das die Informationen vorhanden sind... Nur kann ich das leider nicht umsetzten
LG Hans

AW: Stringoperationen (debug MyItem)
10.07.2013 13:52:19
firmus
Hallo Hans,
...sich 3 weitere Unterpunkte: "SenderEmailAddress... kann ich so nicht nachvollziehen.
Diese 3 befinden sich unterhalb des "+"-Zeichens und sind auch sichtbar wenn das "+" NICHT
aufgeklappt ist. JA? mit "JA" sind das keine Unterpunkte zu SENDER, sondern auf der gleichen Ebene.
Ansprechbar über "myItem.SenderName".
Wenn das alles so ist, verstehe ich Dein Problem nicht.
Die Information ist da, aber ich kann sie nicht umsetzen..... was, wie umsetzen?
Ich empfehle ab der Zeile "For Each myItem In myOlSel" mit Einzelschritt(F8) durchzugehen und den Ablauf Zeile für Zeile zu prüfen. u.u. wird ein Zweig, der nach Deiner Überlegung durchlaufen werden soll, nicht durchlaufen.
f8,f8,f8,f8 - und dazwischen prüfen wird es zeigen.
Viel Erfolg,
Gruß
firmus

Anzeige
AW: Outlook Absender auslesen
08.07.2013 15:37:22
Kawensmann
Hallo,
ersetze mal diese Zeile:
myAbsenderName = (Right(myAbsenderName, Len(myAbsenderName) - InStr(myAbsenderName, _
".")))
durch diese:
myAbsenderName = Right(myAbsenderName, Len(myAbsenderName) - InStr(myAbsenderName, _
".")) & ", " & Left(myAbsenderName, InStr(myAbsenderName, ".") - 1)

und diese:
myAbsenderName = (Left(myItem.SenderName, InStr(myItem.SenderName, ",") - 1))
durch diese:
myAbsenderName = myitem.SenderName
Gruß
Kawensmann

Anzeige
AW: Outlook Absender auslesen
08.07.2013 15:46:25
Hans
Hab das so eingebaut wie du gesagt hast, kam aber leider das selbe Ergebnis raus wie vorher...
Stand der Nachname da.
Hast du vlt noch eine Idee?
LG Hans

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige