Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
VBA für alle markierten Mails ausführen
zurück: An-Feld als Combobox weiter: Outlook Erinnerung Datum aus Excel Tabelle auslesen VBA Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
thevibe
Gast


Verfasst am:
22. März 2014, 09:23
Rufname:

VBA für alle markierten Mails ausführen - VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hello Ihr lieben Profis,
ich benötige mal wieder ein klein wenig Hilfe.
Ich möchte in Outlook 2010 allen markierten
E-Mails eine individualisierte Antwort per
VBA Script zukommen lassen. Dabei soll in
jeder Mail aus dem Absenderfeld der
Nachname ausgelesen und zum Anfang
ausgewählt werden ob der Absender Mann
oder Frau ist. Das klappt für eine Mail ganz
gut, nur für mehrere markierte weiß ich leider
nicht wie das übergeben werden soll und wie
das Datum des E-Maileingangs im Text
genutzt werden kann. Die von mir definierte
Variable "Datum" geht leider nicht. Hier mal
mein Code soweit:



Sub InsertNameInReply()
Dim Msg As Outlook.MailItem
Dim MsgReply As Outlook.MailItem
Dim strGreetName As String
Dim geschlecht As String
Dim lGreetType As Long
Dim Datum As String
'set reference to open/selected mail item
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set Msg = ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set Msg = ActiveInspector.CurrentItem
Case Else
End Select
On Error GoTo 0
If Msg Is Nothing Then GoTo ExitProc
' figure out greeting line
On Error Resume Next
lGreetType = InputBox("Gender Select:" & vbCr & vbCr & "Drücke '1' männliche Kündigung oder _
_
'2' für weibliche Form")
On Error GoTo 0
If lGreetType = False Then GoTo ExitProc
If lGreetType = 1 Then
'Datum = objItem.ReceivedTime <= funktioniert nicht
geschlecht = "Herr"
strGreetName = Right$(Msg.SenderName, InStr(1, Msg.SenderName, " "))
ElseIf lGreetType = 2 Then
'Datum = objItem.ReceivedTime <= funktioniert nicht
geschlecht = "Frau"
strGreetName = Right$(Msg.SenderName, InStr(1, Msg.SenderName, " "))
Else ' something else entered??
GoTo ExitProc
End If
Set MsgReply = Msg.Reply
With MsgReply
.Subject = "RE:" & Msg.Subject
.HTMLBody = "
Guten Tag " & _
geschlecht & " " & strGreetName & ",
vielen Dank für Ihre E-Mail
Wir bestätigen _
Ihnen hiermit den Erhalt Ihrer Kündigung vom " & Datum &".
Vielen Dank für Ihre Treue
" & .HTMLBody
.Display
End With
ExitProc:
Set Msg = Nothing
Set MsgReply = Nothing
End Sub
-----------------------------------------------------------
Wäre schön wenn Ihr mir helfen könntet.
Michael Bauer
MVP Outlook


Verfasst am:
22. März 2014, 09:35
Rufname:
Wohnort: Vollersode


AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hallo,

im Falle des Explorers greifst Du derzeit ja nur auf Selection(1) zu, also nur das erste selektierte Element.

Damit der Umbau nicht zu aufwendig wird, würde ich für beide Fälle (Inspector bzw. Explorer) eine Collection verwenden und darin alle zu bearbeitenden Objektverweise speichern. Danach läufst Du in einer Schleife durch diese Collection und führst den weiteren Code aus.

_________________
Michael Bauer
Tools für Microsoft Outlook
Gast



Verfasst am:
23. März 2014, 23:16
Rufname:

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

danke für den tipp. gehts das vielleicht auch ohne schleife? also einfach dass das für alle markierten mails ausgeführt wird? ansonsten versteh ich deine erklärung leider nicht. hat dafür einer ein code-schnipsel?
dazu denn auch gleich noch kurz die frage, wie man das eingangsdatum in meinem text eintragen lässt.

danke nochmal
Michael Bauer
MVP Outlook


Verfasst am:
25. März 2014, 07:22
Rufname:
Wohnort: Vollersode

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Ohne Schleife geht es nicht. Z.B.:
Code:
For Each Msg in ActiveExplorer.Selection
...
Next

Warum funktioniert es denn bei Dir mit dem Datum nicht?

_________________
Michael Bauer
Tools für Microsoft Outlook
thevibe
Gast


Verfasst am:
25. März 2014, 14:44
Rufname:


AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hallo Michael,

vielen Dank für deine Hilfe. Bezüglich des Datums versuche ich es wie folgt:

zuerste:

Dim Eingangsdat As String


weiter unten definiere ich dann die variable:

Eingangsdat = Mail.ReceivedTime


und versuche diese in meinen autotext einzubinden:

Set MsgReply = Msg.Reply

With MsgReply
.Subject = "RE:" & Msg.Subject
.HTMLBody = "<span style=""font-family : arial;font-size : 10pt""><p>Guten Tag " & geschlecht & " " & strGreetName & ",</p><p>vielen Dank für Ihre E-Mail.</p> <p>Wir bestätigen Ihnen hiermit den Erhalt Ihrer Kündigung vom " & Eingangsdat & ".</p><p>Gemäß den car2go Mietbedingungen und dem Rahmennutzungsvertrag erklären wir damit die Beendigung des Vertragsverhältnisses zum 31.03.2014.</p><p>Vielen Dank für die Nutzung von car2go.</p>" & .HTMLBody
.Display



dabei erhalte ich dann bei Eingangsdat = Mail.ReceivedTime die Fehlermeldung "424 Objekt erforderlich".

Vergesse ich irgendwas?
Michael Bauer
MVP Outlook


Verfasst am:
25. März 2014, 14:54
Rufname:
Wohnort: Vollersode

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hallo,

Du vergißt nichts aber übersiehst etwas. Schau mal hin, welche Variablen Du verwendest.
Code:
Eingangsdat = Mail.ReceivedTime
Hier wird keine Variable definiert, sondern es werden zwei verwendet. "Mail" gibt es aber nicht. Für die selektierte Email(s) bzw. die Antwort verwendest Du ja Msg und MsgReply als Variablen.
_________________
Michael Bauer
Tools für Microsoft Outlook
thevibe
Gast


Verfasst am:
25. März 2014, 16:04
Rufname:

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

vielen dank, aber es soll wohl einfach nicht sein... auch mit

Eingangsdat = objItem.ReceivedTime(Msg)

bekomm ich dieselbe Fehlermeldung. Da bleib ich doch einfach beim händischen Schreiben. Vielleicht finde ich auch mal ein Codesnipped, was einfach nur beim antworten auf eine Mail eine Mail mit Autotext:


Guten Tag <anrede> <nachname>

vielen Dank für Ihre E-Mail vom <eingangsdatum>


erstellt. VBA mit outlook is echt ne spur zu hoch für mich, dabei ist es doch mit excel soo schön einfach.
Michael Bauer
MVP Outlook


Verfasst am:
25. März 2014, 17:36
Rufname:
Wohnort: Vollersode

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Wie kommst Du denn jetzt auf "objItem"? Wie Deine Variablen heißen, habe ich doch geschrieben.
_________________
Michael Bauer
Tools für Microsoft Outlook
Raphael H
Im Profil kannst Du frei den Rang ändern


Verfasst am:
30. März 2014, 08:56
Rufname:

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hallo Thomas,

ich bin der Meinung den Code schon mal in einem anderen Forum gesehen zu haben.... und auch eine Antwort geschrieben zu haben.

Ich habe in deinem Code nur eine Schleife eingebaut (wie von Michael vorgeschlagen) und das mit dem Eingangsdatum noch kurz angepasst und es funktioniert problemlos.


Code:

Option Explicit


 Sub InsertNameInReply()
 Dim Msg As Outlook.MailItem
 Dim MsgReply As Outlook.MailItem
 Dim strGreetName As String
 Dim geschlecht As String
 Dim lGreetType As Long
 Dim Datum As String
 Dim Eingangsdat As Date
 'set reference to open/selected mail item
 On Error Resume Next
 Select Case TypeName(Application.ActiveWindow)
    Case "Explorer"
        Set Msg = ActiveExplorer.Selection
    Case "Inspector"
        Set Msg = ActiveInspector.CurrentItem
    Case Else
 End Select
 On Error GoTo 0
 
For Each Msg In ActiveExplorer.Selection
    If Msg Is Nothing Then GoTo ExitProc
    ' figure out greeting line
    On Error Resume Next
    lGreetType = InputBox("Gender Select:" & vbCr & vbCr & "Drücke '1' männliche Kündigung oder  '2' für weibliche Form")
    On Error GoTo 0
    If lGreetType = False Then GoTo ExitProc
    If lGreetType = 1 Then
    'Datum = objItem.ReceivedTime <= funktioniert nicht
    geschlecht = "Herr"
    strGreetName = Right$(Msg.SenderName, InStr(1, Msg.SenderName, " "))
    ElseIf lGreetType = 2 Then
    'Datum = objItem.ReceivedTime <= funktioniert nicht
    geschlecht = "Frau"
    strGreetName = Right$(Msg.SenderName, InStr(1, Msg.SenderName, " "))
    Else ' something else entered??
    GoTo ExitProc
    End If
    Eingangsdat = Msg.ReceivedTime
    Set MsgReply = Msg.Reply
    With MsgReply
    .Subject = "RE:" & Msg.Subject
    .HTMLBody = "Guten Tag " & geschlecht & " " & strGreetName & " " & Datum & " " & Eingangsdat
    .Display
    End With
Next
ExitProc:
 Set Msg = Nothing
 Set MsgReply = Nothing
 End Sub


Gruess Raphael H
Gast



Verfasst am:
31. März 2014, 09:26
Rufname:

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Vielen lieben dank. ich habs inzwischen gefunden und hinbekommen. danke euch.

das einzige was irgendwie nicht so "richtig" geht ist die namentliche anrede durch den aufruf:

strGreetName = Right(Msg.SenderName, InStr(Msg.SenderName, " "))

dieser macht z.b. aus "Hans Fischer <XXX_XXXXXXXXX@XXXXXXX.com>" wenn ich strGreetName anzeigen lasse das folgende: "Herr scher"

und aus "Herbert Alte <XXXXXXX.XXXX@XXX.de>" wenn ich strGreetName anzeigen lasse das folgende: "Herr ert Alte"

versteh ich irgendwie nicht
Raphael H
Im Profil kannst Du frei den Rang ändern


Verfasst am:
31. März 2014, 20:51
Rufname:

AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Hallo Thomas,

als kleine Hilfestellung. Funktioniert wenn die Absenderadresse nach dem Prinzip Vorname.Nachname@PrinzessinLiliFee.de aufgebaut ist.

Code:

Sub vor_und_nachname()
Dim msg As Outlook.MailItem
Dim Vorname As String
Dim Nachname As String

With ActiveExplorer.Selection(1)

    Vorname = Left(.SenderName, InStr(.SenderName, ".") - 1) ' Gibt den Vornamen
    Nachname = Mid(.SenderName, InStr(.SenderName, ".") + 1, InStr(.SenderName, "@") - InStr(.SenderName, ".") - 1) 'Gibt den Nachnamen

End With
End Sub


Gruess
Raphael
Gast



Verfasst am:
02. Apr 2014, 11:33
Rufname:


AW: VBA für alle markierten Mails ausführen - AW: VBA für alle markierten Mails ausführen

Nach oben
       Version: Office 2010

Danke für die hilfe. Ich möchte den Namen jedoch nicht direkt aus der Emailadresse, sondern den Namen auslesen. In deinem Beispiel also:

Rosa Lilifee <laberlaber@PrinzessinLiliFee.de>

da möchte ich nur "Lilifee" herauskopieren und nichts von dem, was in den <> steht.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Outlook Mail: Mails exportieren - Outlook 2002 2 guido.m 5316 14. März 2005, 16:04
BüroTiger Mails exportieren - Outlook 2002
Keine neuen Beiträge Outlook Mail: wiederfinden von gelöschten mails 1 paulchenpanther 2562 28. Feb 2005, 10:21
Christi@n wiederfinden von gelöschten mails
Keine neuen Beiträge Outlook Mail: Abwesenheitsassistent, Mails weiterleiten zu ext. Mail 1 nicksan 1929 22. Feb 2005, 11:45
kraemer Abwesenheitsassistent, Mails weiterleiten zu ext. Mail
Keine neuen Beiträge Outlook Mail: Mails mit Anhang hängen fest 1 gast12345 827 07. Feb 2005, 18:18
Nicki Wruck Mails mit Anhang hängen fest
Keine neuen Beiträge Outlook Mail: Nach alias-Einrichtung erhalte ich alle mails doppelt! 3 poppsi 1931 07. Feb 2005, 17:42
kraemer Nach alias-Einrichtung erhalte ich alle mails doppelt!
Keine neuen Beiträge Outlook Mail: Briefumschlagsymbol nicht beim Start von OL und neuen mails 1 MrT0M 1300 23. Jan 2005, 12:44
Christi@n Briefumschlagsymbol nicht beim Start von OL und neuen mails
Keine neuen Beiträge Outlook Mail: Abspeichern der Mails vor Neuinstallation 1 uttegu 1323 03. Jan 2005, 20:01
Amethyst Abspeichern der Mails vor Neuinstallation
Keine neuen Beiträge Outlook Mail: Outlook 2k soll NICHT automatisch nach Mails gucken ... wie? 6 Eastpak1984 1333 29. Dez 2004, 17:16
Eastpak1984 Outlook 2k soll NICHT automatisch nach Mails gucken ... wie?
Keine neuen Beiträge Outlook Mail: Mails werden nicht automatisch geladen Outlook 2003 1 Ingolf1 1633 17. Nov 2004, 20:15
gast7896 Mails werden nicht automatisch geladen Outlook 2003
Keine neuen Beiträge Outlook Mail: Mails weiterleiten, aber mit ursprünglicher "Von:" 0 Ich bin ein Niemand 809 05. Okt 2004, 14:33
Ich bin ein Niemand Mails weiterleiten, aber mit ursprünglicher "Von:"
Keine neuen Beiträge Outlook Mail: gelese Mails als Ungelesen behalten (automatisch!) 1 blueandrew 1514 01. Okt 2004, 09:56
macdeal gelese Mails als Ungelesen behalten (automatisch!)
Keine neuen Beiträge Outlook Mail: Outlook 2003 verschickt keine Mails obwohl Konten korrekt... 0 Aquaplex 938 14. Sep 2004, 11:59
Aquaplex Outlook 2003 verschickt keine Mails obwohl Konten korrekt...
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Project