Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Outlook > Item.delete

Outlook > Item.delete
12.09.2006 16:04:33
Boris
Hallo,
ich greife per Makro aus Excel auf die Outlook Inbox zu und protokoliere die Senden und Empfangen Zeiten, die Absender, die Betreffzeile. Nachdem ich die Daten habe, möchte ich alle Mails in der Inbox löschen.
Dies mache (versuche) ich mit folgendem Code:

Sub Mails_löschen()
Dim Out As Outlook.MAPIFolder
Dim Item As Object
Set Out = GetObject("", "Outlook.Application").GetNamespace("Mapi"). _
GetDefaultFolder(olFolderInbox).Folders("Preise")
For Each Item In Out.Items
Item.Delete
Next Item
End Sub

Interessanterweise tritt folgender Effekt ein: In der Inbox stehen 10 Mails, führe ich das Makro Schritt für Schritt aus, sehe ich, dass zuerst die oberste Mail (Mail1), dann Mail2, dann Mail3 gelöscht werden. Dann macht das Makro einen Sprung zu Mail8. Nachdem das Makro durchgelaufen ist bleiben also noch Mail4/5/6/7 in der Inbox stehen.
Kennt jemand die Ursache oder die (natürlich besser!) Lösung für dieses Problem?
Gruss
Boris

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook > Item.delete
12.09.2006 16:12:02
Sylvio
Hallo Boris,
schreib es mal so:

Sub Mails_löschen()
Dim Out As Outlook.MAPIFolder
Dim Item As Object
Set Out = GetObject("", "Outlook.Application").GetNamespace("Mapi"). _
GetDefaultFolder(olFolderInbox).Folders("Preise")
For Each Item In Out.Items
Item.Delete
DoEvents
Next Item
Set Out = Nothing
End Sub

Gruß Sylvio
AW: Outlook > Item.delete
12.09.2006 16:22:12
EtoPHG
Hallo Boris,
Löschen sollte man GENERELL, von hinten nach vorn.
Wenn von vorn nach hinten, rutsch die ganze Chose rauf .... ;-)
Also:

Sub Mails_löschen()
Dim Out As Outlook.MAPIFolder
Dim Item As Object
Dim ix As Single
Set Out = GetObject("", "Outlook.Application").GetNamespace("Mapi"). _
GetDefaultFolder(olFolderInbox).Folders("Preise")
For ix = Out.Items.Count To 1 Step -1
Out.Items(ix).Delete
Next ix
End Sub

Gruss Hansueli
Anzeige
AW: Outlook > Item.delete
12.09.2006 16:43:47
Boris
Vielen Dank für die Antwort,
ich werde beide Lösungen testen.
Was auch geht, aber weniger elegant, ist diese Möglichkeit:
Do While Out.Items.Count &gt 0
For Each Item In Out.Items
Item.Delete
Next Item
Loop
Merci nochmal,
Gruss
BORIS
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen