thomasthomas
Goto Top

Email vom Posteingang in einen Unterordner vom Posteingang ziehen und ein Makro starten

Hallo,

ist es möglich ein Makro zu starten wenn man eine Email vom Posteingang in einen Unterordner vom Posteingang zieht?

Grüße Thomas

Content-ID: 572089

Url: https://administrator.de/forum/email-vom-posteingang-in-einen-unterordner-vom-posteingang-ziehen-und-ein-makro-starten-572089.html

Ausgedruckt am: 22.12.2024 um 20:12 Uhr

Pjordorf
Pjordorf 15.05.2020 um 21:38:08 Uhr
Goto Top
Hallo,

Zitat von @ThomasThomas:
ist es möglich ein Makro zu starten wenn man eine Email vom Posteingang in einen Unterordner vom Posteingang zieht?
Ja, wenn die vorraussetzungen alle passen und es eingerichtet / Programmiert ist.

Gruß,
Peter
ThomasThomas
ThomasThomas 15.05.2020 um 21:45:41 Uhr
Goto Top
Hallo Peter,

vielen Dank für deine Antwort, das klingt gut, kannst du mir schreiben wie man dies umsetzt?

Danke

Thomas
Pjordorf
Pjordorf 15.05.2020 um 21:54:57 Uhr
Goto Top
Hallo,

Zitat von @ThomasThomas:
vielen Dank für deine Antwort, das klingt gut, kannst du mir schreiben wie man dies umsetzt?
https://www.google.com/search?q=outlook+programming

Gruß,
Peter
144260
144260 15.05.2020 um 21:55:44 Uhr
Goto Top
colinardo
colinardo 16.05.2020, aktualisiert am 17.05.2020 um 11:22:05 Uhr
Goto Top
Im einfachsten Fall einzufügen in ThisOutlookSession und anschließend zwingendem Outlook-Neustart (Makros müssen natürlich freigeschaltet und erlaubt sein!)
Dim WithEvents addedItems As items

Private Sub Application_Startup()
    Set addedItems= Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Testunterordner").items  
End Sub

Private Sub addedItems_ItemAdd(ByVal Item As Object)
    MsgBox "Item with subject '" & Item.Subject & "' has been moved into folder.", vbInformation  
End Sub
Der Verweis oben gilt bspw. für eine Exchange-Mailbox. Sollte es ein IMAP oder POP-Postfach sein dann muss der Verweis anders aussehen
Set addedItems = Application.Session.Stores("<NAME DES STORES>").GetDefaultFolder(olFolderInbox).Folders("Testunterordner").items
Das <NAME DES STORES> muss ersetzt werden durch den Namen des Accounts so wie er im Ordnerbaum im Root erscheint. Der Name des direkten Unterordners (Testunterordner) muss natürlich auch an eigene Gegebenheiten angepasst werden.

In der Private Sub addedItems_ItemAdd kann man dann hinterlegen was man eben so damit machen möchte.

Grüße Uwe
ThomasThomas
ThomasThomas 16.05.2020 um 22:09:18 Uhr
Goto Top
Hallo killpid.

Vielen Dank für deine Antwort.


Hallo Uwe,

vielen Dank für den Code. Ich habe ihn eingefügt bekomme es aber nicht zum laufen. Ich habe ein IMAP -Postfach.

Set addedItems = Application.Session.Stores("<Emailadresse>").GetDefaultFolder(olFolderInbox).Folders("Test").items

- der Name meines Accounts ist die Emailadresse
- als Unterordner habe ich den Ordner Test angelegt

Ist es auch möglich das es egal ist in welchen Unterordner man es verschiebt und das Makro startet?

vielen Dank und einen schönen Abend
Pjordorf
Pjordorf 16.05.2020 um 22:38:44 Uhr
Goto Top
Hallo,

Zitat von @ThomasThomas:
vielen Dank für den Code. Ich habe ihn eingefügt bekomme es aber nicht zum laufen. Ich habe ein IMAP -Postfach.
Nun denn, ohne weitere Info kann dir niemand beim Kinderkriegen helfen, da musst du ganz alleine Durch. Du sagst doch auch nicht hab nen Ferrari zusammen gebaut, tuts aber nicht. Was ist falsch? Also was ist die genaueFehlermeldung wenn du was genau tust?Auch deine Outlook Version, anbindung an den betreffenden Mail Server oder Exchange usw. Evtl dein Quellcode hier uns zeigen. Bilder können auch helfen.

Ist es auch möglich das es egal ist in welchen Unterordner man es verschiebt und das Makro startet?
Wenn es so Programmiert wird, ja, sonst nein.

Gruß,
Peter
144260
144260 16.05.2020 aktualisiert um 23:56:45 Uhr
Goto Top
Habs hier mal probeweise getestet , läuft einwandfrei ist ja nichts weltbewegendes, du machst also offensichtlich was falsch ...

Ist es auch möglich das es egal ist in welchen Unterordner man es verschiebt und das Makro startet?
Einfach mal in die Doku schauen dann hättest du das hier gefunden...

https://docs.microsoft.com/de-de/office/vba/api/outlook.folder.beforeite ...
colinardo
colinardo 17.05.2020 aktualisiert um 11:14:57 Uhr
Goto Top
Zitat von @ThomasThomas:
Ist es auch möglich das es egal ist in welchen Unterordner man es verschiebt und das Makro startet?
Auch das ist kein Problem, das sieht dann so aus:
Dim WithEvents inbox As folder

Private Sub Application_Startup()
    Set inbox = Application.Session.Stores("<NAME DES STORES>").GetDefaultFolder(olFolderInbox)  
End Sub

Private Sub inbox_BeforeItemMove(ByVal Item As Object, ByVal MoveTo As MAPIFolder, Cancel As Boolean)
    MsgBox "Item with subject '" & Item.Subject & "' will be moved to folder '" & MoveTo.Name & "'.", vbInformation  
End Sub
Funktioniert wie das obige einwandfrei, wenn du die wichtigen Hinweise dazu oben beachtet hast (Neustart & Co.) und den Code in den richtigen Codeabschnitt kopiert hast (Kein Modul sonder in "ThisOutlookSession"!).

screenshot

Mehr Support dazu gibt's gerne per PN.

Grüße Uwe