VBA Outlook - markierte Emails löschen

Hallo,

ich habe mir ein kleines Skript geschrieben, mit dem ich markierte Emails automatisch auf der Festplatte speichere. Danach sollen die Emails gelöscht werden. Wenn ich im Debugg-Modus mit F8 durchlaufe, funktioniert das auch ohne Probleme. Aber mit F5 gestartet funktioniert der Code nicht mehr: „Ein Client Vorgang ist fehlgeschlagen“

Sub Funktion_Email_löschen()

Dim i As Integer
Dim intEmailanzahl As Integer
Dim objTemp As Object
Dim intEmailzähler As Integer

intEmailzähler = Application.ActiveExplorer.Selection.Count

For i = 1 To intEmailzähler
Set objItem = Application.ActiveExplorer.Selection(i)
objItem.Delete
intEmailzähler = intEmailzähler - 1
i = 0
If intEmailzähler = 0 Then GoTo sprKeinEmailMehr
Next i

sprKeinEmailMehr:

End sub

Komisch - eigentlich ist es doch das Gleiche, ob ich es Step by Step durchlaufen lasse oder automatisch am Stück, oder?

Grüße

Stefan

Hallo
Meines wissens reich der Befehl selection Delete
Grüsse Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Stefan,

sorry, ich habe k.A. von Vba für Outlook.

Komisch - eigentlich ist es doch das Gleiche, ob ich es Step
by Step durchlaufen lasse oder automatisch am Stück, oder?

Nö, erstmal hat Vba Zeit während du nacheinander F8 drückst, etwas zu tun und zu beenden, was bei F5 wegfällt, da werden die Codezeilen viel schneller ausgeführt, wenn dann du in Codezeile 7 etwas ansagst was noch nicht fertig ist wenn Codezeile 8 ausgeführt wird knallst halt bei F5-Makroausführung.

Bei F8 passiert nix, denn du stehst in Codezeile 7, drückst F8, bis du dann nochmal auf F8 gedrückt hast ist Codezeile 7 ausgeführt und Codezeile 8 läuft problemlos.

Das ist das Eine, das Andre ist, ich hatte es selbst schon in Excel-Vba, las es auch schon in Foren, ist selten, aber gelegentlich ist mein obiges Gesagte nicht der Grund, da läuft der Code Schrittweise mit F8, mit F5 nicht, wissen die Götter warum bzw. warum nicht.

Ich habe mir deinen Code kurz angeschaut, verstehe klar die Outlook-Feinheiten nicht so ganz, aber grundsätzlich, innerhalb einer
For a= 1 to b
Schleife b zu ändern bringt dir nix, das wird nur einmalig beim Start der Schleife gelesen, danach kannste b ändern wie du willst, bringt nix.
M.E. funktioniert dieses Makro: *naja sollte funktionieren, ungetestet*

Sub Funktion\_Email\_löschen()
Dim i As Integer, intEmailanzahl As Integer, objTemp As Object
Dim intEmailzähler As Integer
intEmailzähler = Application.ActiveExplorer.Selection.Count
For i = intEmailzähler To 1 step -1
 Set objItem = Application.ActiveExplorer.Selection(i)
 objItem.Delete
Next i
End sub

Gruß
Reinhard

Hallo
Meines wissens reich der Befehl selection Delete
Grüsse Sebastian

Hallo Sebastian,

danke schon mal für die schnelle Antwort. Das wäre ja wirklich supereinfach. Ich probier es Morgen in der Arbeit gleich mal aus.

Grüße

Stefan

Hallo
Meines wissens reich der Befehl selection Delete
Grüsse Sebastian

Hallo Sebastian,

geht leider nicht: „Objekt unterstützt diese Eigenschaft oder Methode nicht (438)“.

Ich hab auch in der Hilfefunktion unter „Selection“ nichts entsprechendes gefunden - es kann allerdings sein, dass in einer neueren Version von Outlook der Befehl funktioniert. Ich nutze OL2000.

Grüße

Stefan

Hallo Reinhard,

Sub Funktion_Email_löschen()
Dim i As Integer, intEmailanzahl As Integer, objTemp As Object
Dim intEmailzähler As Integer
intEmailzähler = Application.ActiveExplorer.Selection.Count
For i = intEmailzähler To 1 step -1
Set objItem = Application.ActiveExplorer.Selection(i)
objItem.Delete
Next i
End sub

Klappt nicht: „Ein Client-Vorgang ist fehlgeschlagen (-1213988593)“. Das erste Email wird gelöscht - danach steigt er aus…

Mit F8 klappt es natürlich wieder anstandslos…

Grüße

Stefan

Zwischenzeitlich habe ich es noch mit einer Pausenfunktion versucht:

Oben mit:

Private Declare Sub Sleep Lib „kernel32“ (ByVal lngMilliseconds As Long)

Im Sub dann Pause mit

Sleep 500

bzw.

Sleep 5000

Leider hat es nichts geholfen. Es dauert einfach länger, aber trotzdem funktioniert es nicht genauso, wie wenn ich mit F8 durchlaufe.

Stefan