Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Spam per Makro löschen
#21
Hallo René,

hab ich gemacht, bleibt aber immer noch hängen und zwar
Code:
Set DeleteItem = olName.Session.GetItemFromID(EntryID)

Der gesamte Code sieht jetzt so aus ...
Code:
Public Sub ClearJunkMailFolders()

Dim olApp           As Outlook.Application
Dim olName          As Outlook.NameSpace
Dim olFolder        As Outlook.MAPIFolder
Dim olItems         As Outlook.Items
Dim EntryID         As String 'Element-ID

Dim olFoldersCount  As Long
Dim olItemsCount    As Long


Set olApp = Application

  With olApp
     Set olName = .GetNamespace("MAPI")
         For olFoldersCount = 1 To .Session.Accounts.Count
             Set olFolder = olName.Session.Folders(olFoldersCount).Folders("Junk-E-Mail")
                 olItemsCount = 0
                 Do While olFolder.Items.Count > 0
                          Set olItems = olFolder.Items(1)
                          EntryID = olItems.EntryID
                          olItems.Delete
                          Set DeleteItem = olName.Session.GetItemFromID(EntryID)
                          DeleteItem.Delete
                          olItemsCount = olItemsCount + 1
                 Loop
         Next olFoldersCount
  End With
End Sub
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#22
Hi Bernie,

(19.01.2015, 13:15)Bernie schrieb: hab ich gemacht, bleibt aber immer noch hängen und zwar
Code:
Set DeleteItem = olName.Session.GetItemFromID(EntryID)

und wo ist DeleteItem definiert?

Zum Merken: Jede Variable, die benutzt wird, sollte/muß vor Benutzung definiert/dimensioniert werden!
Antworten Top
#23
Hallo Ralf,

♥lichen Dank für deine Hilfe.

Der gesamte Code inkl. Änderungen stammt von René. Ich selber habe bei Outlook Variablen meine Probleme.

Weißt du, wie die Variable aussehen muss?
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#24
"DeleteItem" habe ich Deinem Code entnommen, müsstest Du auch noch deklarieren.
Antworten Top
#25
Hallo Rene,

hab aus meinem alten Code die Zeile in den neuen Code eingefügt
Code:
Dim DeleteItem      As Object 'Namespace bestimmen

Jetzt hängt es hier
Code:
Set olItems = olFolder.Items(1)

Gesamtcode
Code:
Public Sub ClearJunkMailFolders()

Dim olApp           As Outlook.Application
Dim olName          As Outlook.NameSpace
Dim olFolder        As Outlook.MAPIFolder
Dim olItems         As Outlook.Items

Dim EntryID         As String 'Element-ID

Dim olFoldersCount  As Long
Dim olItemsCount    As Long
Dim DeleteItem      As Object 'Namespace bestimmen


Set olApp = Application

  With olApp
     Set olName = .GetNamespace("MAPI")
         For olFoldersCount = 1 To .Session.Accounts.Count
             Set olFolder = olName.Session.Folders(olFoldersCount).Folders("Junk-E-Mail")
                 olItemsCount = 0
                 Do While olFolder.Items.Count > 0
                          Set olItems = olFolder.Items(1)
                          EntryID = olItems.EntryID
                          olItems.Delete
                          Set DeleteItem = olName.Session.GetItemFromID(EntryID)
                          DeleteItem.Delete
                          olItemsCount = olItemsCount + 1
                 Loop
         Next olFoldersCount
  End With

End Sub
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#26
Das wird bei Dir nichts. Dein Problem ist dass Dein Outlook den programmatischen Zugriff auf die Session.Accounts sperrt. Weshalb das so ist kann ich nicht sagen. Da bleibt Dir nur, mal direkt im Microsoft-Forum nachzufragen. http://answers.microsoft.com/de-de/
Antworten Top
#27
Hallo René,

Danke für deine Bemühungen!!! Thumps_up
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste