Outlook 2010 . VBA Script zum aufklappen aller Postfächer, aber nur bei ungelesenen bzw. unread Mails
Hallo,
ich habe in Outlook 2010 mehrere Postfächer, die ich mit Hilfe eines gefunden VBAs steuere.
Das VBA klappt alle vorhanden Postfächer auf und springt auf Posteingang, sofern ich dies hinterlege.
Ich wollte das Script nun erweitern, dass NUR die Postfächer aufgeklappt werden, in denen es in irgendeinem Unterordner / Posteingang noch ungelesene Emails gibt.
Ist alles gelesen, sollen diese einfach zugeklappt bleiben.
So sieht es aktuell aus und läuft:
Dann wollte ich die Zeile mit ....
mit diesem ersetzen....
Leider wird die Funktion nicht akzeptiert, konnte leider auch nicht herausfinden, warum.
Kann mir jemand die IF-Abfrage um die Abfrage von ungelesenen Emails erweitern, damit nur dann die Postfächer aufgeklappt werden?
BESTEN DANK!
ich habe in Outlook 2010 mehrere Postfächer, die ich mit Hilfe eines gefunden VBAs steuere.
Das VBA klappt alle vorhanden Postfächer auf und springt auf Posteingang, sofern ich dies hinterlege.
Ich wollte das Script nun erweitern, dass NUR die Postfächer aufgeklappt werden, in denen es in irgendeinem Unterordner / Posteingang noch ungelesene Emails gibt.
Ist alles gelesen, sollen diese einfach zugeklappt bleiben.
So sieht es aktuell aus und läuft:
Private Sub Application_Startup()
'Folder-Variable definieren
Dim objFolderIMAP01 As Outlook.Folder
Dim objFolderIMAP02 As Outlook.Folder
Dim objFolderIMAP03 As Outlook.Folder
'IMAP-Folder zuweisen (hier in Klammern mit Anführungszeichen den Namen der IMAP-Datendatei eintragen)
Set objFolderIMAP01 = Outlook.Session.Folders("MailBox1")
Set objFolderIMAP02 = Outlook.Session.Folders("MailBox2")
Set objFolderIMAP03 = Outlook.Session.Folders("MailBox3")
'Alle Unterordner selektieren (und damit aufklappen)
Call selectAllFolderRec(objFolderIMAP01)
Call selectAllFolderRec(objFolderIMAP02)
Call selectAllFolderRec(objFolderIMAP03)
'Posteingang als Startordnder auswählen
Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP01.Folders("Posteingang"))
Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP02.Folders("Posteingang"))
Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP03.Folders("Posteingang"))
End Sub
Sub selectAllFolderRec(objFolder As Outlook.Folder)
Dim lngCounter As Long
Dim bolSkipSelect As Boolean
bolSkipSelect = False
For lngCounter = 1 To objFolder.Folders.Count
If objFolder.Folders(lngCounter).Folders.Count > 0 Then
Call selectAllFolderRec(objFolder.Folders(lngCounter))
Else
If bolSkipSelect = False Then
Call Outlook.ActiveExplorer.SelectFolder(objFolder.Folders(lngCounter))
bolSkipSelect = True
End If
End If
Next lngCounter
End Sub
Dann wollte ich die Zeile mit ....
If objFolder.Folders(lngCounter).Folders.Count > 0 Then
If objFolder.Folders(lngCounter).Folders.Count > 0 And objFolder.Folders(lngCounter).Folders.UnReadItemCount > 0 Then
Leider wird die Funktion nicht akzeptiert, konnte leider auch nicht herausfinden, warum.
Kann mir jemand die IF-Abfrage um die Abfrage von ungelesenen Emails erweitern, damit nur dann die Postfächer aufgeklappt werden?
BESTEN DANK!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333874
Url: https://administrator.de/contentid/333874
Ausgedruckt am: 26.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Private Sub Application_MAPILogonComplete()
arrNameOfStores = Array("NAME DES ERSTEN ACCOUNTS","NAME DES ZWEITEN ACCOUNTS","NAME DES DRITTEN ACCOUNTS")
For i = 0 to UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
OpenFolders fldrPosteingang
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
For Each f In fldr.Folders
If f.Folders.count > 0 Then
OpenFolders f
Else
if f.UnreadItemCount > 0 then
ActiveExplorer.SelectFolder f
end if
End If
Next
End Sub
Outlook mit geöffneten Konten starten.
Für deinen Code statt Zeile 32 das hier:
if objFolder.Folders(lngCounter).UnreadItemCount > 0 then
Call Outlook.ActiveExplorer.SelectFolder(objFolder.Folders(lngCounter).Parent)
end if
Dann haben wir uns missverstanden, der Code öffnet nur Unterordner die ungelesene Mails enthalten, der Posteingang wird immer geöffnet, aber wenn du das nicht willst kannst du ja leicht anpassen. Klappt hier problemlos!
Das du dazu natürlich die Zeilen 18,19,20 deines Codes entfernen musst, sollte ja klar sein, denn die öffnen ja ohne Bedingung immer die Accounts!!!!!
Habe es oben entsprechend ergänzt.
Das du dazu natürlich die Zeilen 18,19,20 deines Codes entfernen musst, sollte ja klar sein, denn die öffnen ja ohne Bedingung immer die Accounts!!!!!
Habe es oben entsprechend ergänzt.