Hallo Gast55939,
Du scheinst Dich ja ganz gut auszukennen. Danke vielmals! D.h. ich muss einfach dieses GetDefaultFolders durch Deinen Code ersetzen. Das ist Klasse.
Das werd ich auf jeden Fall in meinen Code einbauen, auch wenn ich in diesem Fall erst mal auf einen Standardordner zugreife - aber mit der Methode kann ich dann jeden beliebigen bekannten Ordner finden, das ist auf jeden Fall besser.
Die Links werd ich mir bei Gelegenheit auch zu Gemüte führen. Will ja was dazulernen.
Jetzt hab ich aber grad noch ein anderes Problem, vieleicht kannst Du mir dann bei dem auch helfen:
Das Makro läuft nach Aussage meines Ansprechpartners und fügt auch die richtigen Zahlen ein. Aber es kommt an einer Stelle eine Fehlermeldung, die ich nicht ganz verstehe und die der mit OK bestätigen muss, das ist natürlich etwas blöd.
Die Fehlernummer ist 438 - Fehler in Prozedur 'Outlook.Posteingang'; Beschreibung: "Object doesn't support this property or method"
Ich paste Dir hier mal den Teil des Codes hin, das ist das, was ich mache, nachdem ich den Posteingang spezifiziert hab:
lngCount = objFolder.Items.Count 'Das ist die Anzahl von emails im Posteingang
' MsgBox lngCount
lngRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'Hier wird einfach die erste freie Zelle in Spalte A gesucht
For lngCur = 1 To lngCount 'Alle emails im Posteingang werden durchlaufen
Application.StatusBar = "Lese Posteingang " & _
Format(lngCur / lngCount, "0%") 'In der Statuszeile wird einiges angezeigt
With objFolder.Items(lngCur) 'Durch diese WITH-Schleife kann die Nennung des Objekts
'bei den nächsten Befehlen entfallen
'In dem Postfach liegen mglw ziemlich viele Alt-emails rum, wir wollen nur die eine, die mit dem
'bekannten Betreff am aktuellen Tag gekommen ist.
If Format(.ReceivedTime, "DD.MM.YYYY") = Format(Date, "DD.MM.YYYY") Then
If .Subject = emailtitle Then
lngRow = lngRow + 8
Cells(lngRow + 1, 1).Value = .Subject
Cells(lngRow + 2, 1).Value = .ReceivedTime
Cells(lngRow + 3, 1).Value = .SenderName
Cells(lngRow + 4, 1).Value = .SenderEmailAddress
Cells(lngRow + 5, 1).Value = .Body
Cells(lngRow + 6, 1).Value = .Attachments.Count
If .Attachments.Count > 0 Then
For lngIndex = 1 To .Attachments.Count
Debug.Print strPath & .Attachments.Item(lngIndex).Filename 'Ausgabe im Direktfenster! (Strg+G)
.Attachments.Item(lngIndex).SaveAsFile v_path1 & .Attachments.Item(lngIndex).Filename
Next
End If
.UnRead = False 'als gelesen markieren
End If
End If
End With
Cells(lngRow + 2, 1).Offset(0, 1).Select
ActiveCell.FormulaR1C1 = "= DATE(YEAR(RC[-1]),MONTH(RC[-1]),DAY(RC[-1]))"
Cells(lngRow, 1).Select 'Jetzt müssen wir nur schnell wieder zurückspringen, damit da nichts schiefgehen kann.
Next
Da werden also alle emails im Posteingang eine nach der anderen durchgegangen, die mit dem gesuchten Betreff (Variable emailtitle) wird rausgesucht, deren Elemente in die aktive Excel-Datei geschrieben und der Anhang runtergeladen.
Kannst Du Dir denken, was da nicht funktionieren könnte, wie es zu dieser Fehlermeldung kommt?
Vielen Dank!
Gruß,
Officer_Bierschnitt
|