Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Immer aktuellste Mail verwenden

Immer aktuellste Mail verwenden
29.09.2015 16:38:30
Willi
Hallo Leute,
nachdem ich nun endlich den Provider gewechselt bekommen habe, wovon habe die eigentlich Ahnung :( ?, kann ich hier auch endlich antworten bzw. neue Fragen stellen.
Und hier kommt dann auch gleich eine: wie schaffe ich es von Excel aus im Outlook folgendes festzustellen und dann entsprechend zu verarbeiten:
Suche nach einer Mail mit einem bestimmten Betreff die der aktuellen Zeit am nächsten liegt. Ich habe bisher:
1.) mit dem Folgenden zähle ich die Mails und finde heraus ob an ein und demselben Tag 2* dieselbe Mail gekommen ist.

Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.Folders("WWacker").Folders("Postfach").Folders("Firma").Folders("  _
_
Neue Mail")
EmailCount = objFolder.Items.Count
If EmailCount > 1 Then
MsgBox "Für den heutigen Tag gibt es zwei Dateien. Bitte die ältere von Hand löschen"
GoTo Schluss
End If
If EmailCount 

2.) Wenn 1 nicht zutrifft, dann lese ich das Ganze aus und kopiere den Anhang der Mail in einen Ordner:

Sub OutlookGetMail()
Dim olApp As Object, objFolder As Object, objItem As Object
Dim Fname As Variant
Dim FileNameFolder As Variant
Set olApp = CreateObject("outlook.application")
Set objFolder = olApp.GetNamespace("MAPI").Folders("WWacker").Folders("Postfach").Folders("  _
_
Firma").Folders("Neue Mail")
For Each objItem In objFolder.Items
If objItem.Subject Like "*" & "Test-Datei" & "*" Then
If objItem.Attachments.Count > 0 Then
With objItem.Attachments.item(1)
If .fileName Like "*.zip" Then
.SaveAsFile "C:\" & .fileName
End If
End With
End If
Else
GoTo KeinepassendeMail
End If
Next
Fname = "C:\Test-datei.zip"
FileNameFolder = "C:\"
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(Fname).Items
KeinepassendeMail:
Set objFolder = Nothing
Set olApp = Nothing
End Sub

3.) und dann frage ich den Zeitstempel der herunter geladenen Datei ab:

DateHeute = Date
DateCreated = FileDateTime("C:\Test-Datei")
DateLeft = Left(DateCreated, 10)
If DateLeft  DateHeute Then
MsgBox " Es wurde heute noch keine Datei zugeschickt. Bitte versuchen Sie es später  _
noch einmal."
DateZaehler = 1
GoTo Schluss
Else
DateZaehler = 0
'    MsgBox " nu is ja doch wat da."
End If
Zugegeben, das Ganze geht mit Sicherheit schneller und besser, aber dazu bin ich zu sehr Anfänger und zum Zweiten entwickelt sich das Ganze derzeit erst.
Mein Hauptproblem ist, daß, wenn mehrere Mails im Ordner liegen, das System die älteste Mail verwendet, und damit nie die aktuellen Daten heruntergeladen werden, da dann Punkt 3 sagt: DateLeft ist älter als DateHeute.
Was mir sehr helfen würde, wäre, wenn ich in der Lage wäre, schon den Zeitstempel der Outlook Mail zu lesen, um dann immer die Mail, die der aktuellen Zeit am nächsten ist zu öffnen und zu entpacken s. Punkt(2). Somit ggf. eine Erweiterung von Punkt 2 ?
Alternativ wäre es auch eine Lösung nach dem Download des Anhanges und der sauberen Verarbeitung der Daten die Mail zum Abschluß zu löschen, so daß der Mailordner immer leer ist.
Da gibt’s doch sicher eine Lösung für?!
Schon mal Danke für Eure Hilfe.
Willi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
dreifach owT.
29.09.2015 19:12:17
mumpel
Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige