Hallo,
du verwechselst die Ausdrücke [b]If[/b] und [b]Width[/b]:
https://de.wikibooks.org/wiki/VBA_in_Excel/_Wenn-Abfragen
Achtung, du bringst olUFolder, olUFolder2 und olUFolder3 durcheinander.
Wenn man sich nur die Schleifen anschaut, ergibt das auch nicht so richtig Sinn (das sind zu viele).
For olItemsCount = 1 To olUFolder.Items.Count 'Schleife über die Mails in olUfolder
For a = olUFolder.Items.Count To 1 Step -1 'Schleife über die Mails in olUfolder
For aa = msg.Attachments.Count To 1 Step -1 'Schleife über alle Anhänge einer Mail
Next
Next
Next olItemsCount
Du bist ja im Prinzip nah dran, aber immer nur aus dem Forum kopieren bringt dir nichts. Mein Vorschlag, beginne nochmal so:
Option Explicit
Public Sub PDFDOWN()
Dim olapp As Object
Dim olName As Object
Dim olHFolder As Object
Dim olUFolder As Object
Dim olUFolder2 As Object
Dim sSavePath As String
Dim sSaveFolder As String
Dim msg As Object
Dim VonDatum As Date, BisDatum As Date
Dim olItemIndex As Long
dim aa as long
sSaveFolder = "C:\Users\Desktop\DOWNLOAD Outlook\"
Set olapp = CreateObject("Outlook.Application")
Set olName = olapp.GetNamespace("MAPI")
Set olHFolder = olName.Session.Folders("Funktionspostfach")
Set olUFolder = olHFolder.Folders("Posteingang")
Set olUFolder2 = olHFolder.Folders("1.01 in Bearbeitung")
VonDatum = CDate(InputBox("Bitte Datum des ersten zu betrachtenden Tages eingeben:", "Datumseingabe", Format(Now - 1, "DD.MM.YYYY")))
BisDatum = CDate(InputBox("Bitte Datum des letzten zu betrachtenden Tages eingeben:", "Datumseingabe", Format(Now, "DD.MM.YYYY")))
VonDatum = DateSerial(Year(VonDatum), Month(VonDatum), Day(VonDatum))
BisDatum = DateSerial(Year(BisDatum), Month(BisDatum), Day(BisDatum) + 1)
For olItemIndex = 1 To olUFolder.Items.Count 'Schleife über die Mails in olUfolder (= Posteingang)
set msg = ... 'E-Mail
For aa = msg.Attachments.Count To 1 Step -1 'Schleife über alle Anhänge einer Mail
sSavePath = ...
debug.print sSavePath
Next
Next
End Sub
Der Code schreibt den Inhalt der Variablen sSavePath in das Direktfenster (im VisualBasicEditor: Alt => Ansicht => Direktfenster oder STRG+G).
Erarbeite dir zunächst den Code nur für den Posteingangsordner.
Als erstes ersetzt du die Punkte durch Code. Sobald dein Code das erste Mal lauffähig ist, probierst du ihn aus und kontrollierst im Direktfenster, ob er das erwartete Ergebnis ausgeibt (das ist noch nicht das Endergebnis).
Stimmt die Ausgabe im Direktfenster nicht mit deiner Erwartung überein, überlegst du, ob du am Code etwas ändern musst, oder ob vielleicht deine Erwartungshalung falsch ist.
Erst wenn die Ausgabe des Codes identisch mit dem ist, was du erwartest, erweiterst du den Code so, dass er deinem Ziel näher kommt (zB. If-Bedingung einbauen).
Denke dir einen besseren Namen für die Variable aa aus und benutze ihn.
Für die If-Bedingung wirst du das Datum der E-Mail benötigen: "[b]msg.ReceivedTime[/b]"
Erst wenn die Ausgabe im Direktfenster richtig ist, speicherst du Anhängge wirklich als Dateien.
Klappt alles für den Posteingang, erst dann programmierst du den "1.01 in Bearbeitung" -Ordner.
Kommst du irgendwo nicht weiter oder verstehst du einen Befehl nicht, kannst du natürlich nachfragen!
|