Hallo liebe Experten,
mit diesem Script werden Anhänge in Outlook aus einem bestimmetn (Unter-)Ordner auf C: gespeichert.
Derzeit nutze ich für die Order und den Dateiname Format(Now, ....
Das ist nicht optimal, ich hätte es lieber, wenn die Zeit genommen wird, zu der die Mail angekommen ist.
Mir fehlt gerade die Phantasie, weil ich ja immer erst die Ordner anlege (bzw. prüfe ob angelegt werden muss) . Irgendeine Schleife muss, her, weil ja für jede Datei neu geprüft werden muss. Vielecht wäre ea auch gut, die Variablen zu sparen und die "Werte" mit in die Zeile Rechnung.Attachments.Item(1).SaveAsFile.... zu schreiben?
Danke für die Anregungen!
Tom
Sub Beispiel()
Dim mynamespace As Outlook.NameSpace
Set mynamespace = Application.GetNamespace("MAPI")
Dim myinbox As Outlook.Folder
Set myinbox = mynamespace.GetDefaultFolder(olFolderInbox)
Dim destfolder As Outlook.Folder
Set destfolder = myinbox.Folders("Auto-Daten")
Set destfolder = myinbox.Folders("Auto-Daten")
Dim Rechnungf As Outlook.Folder
Set Rechnungf = destfolder.Folders("Rechnung")
Dim myRechnung As Outlook.Items
Set myRechnung = Rechnungf.Items
Dim Rechnung As Object
Set Rechnung = myRechnung.Find("[SenderName] ='xxxxxxx@xxxxx.com'")
Dim Rechnungdateizeit
Rechnungdateizeit = Format(Now, "YYYY-mm-MMM-DD-hh-mm")
Rechnungmonat = Format(Now, "YYYY-mm-MMM")
If Dir("C:\" & Rechnungmonat, vbDirectory) = "" Then
MkDir ("C:\" & Rechnungmonat)
End If
While TypeName(Rechnung) <> "Nothing"
SentOn = Rechnung.SentOn
Rechnung.Attachments.Item(1).SaveAsFile "C:\" & Rechnungmonat & "\" & Rechnungdateizeit & "-Rechnung .pdf"
Rechnung.Delete
Set Rechnung = myRechnung.FindNext
Wend
MsgBox "Daten wurden automatisch verarbeitet", vbInformation
End Sub
|