E-Mail-Postfächer eines Team lassen sich am Besten gemeinsam bearbeiten wenn sie übersichtlich gegliedert sind und so jedes Teammitglied auf einen Blick sieht, welche Aufgaben noch bearbeitet werden müssen. Ein Beispiel für einen solchen Aufbau habe ich bereits im vorherigen Beitrag “Workflow in Team-Postfächern optimieren” beschrieben. In diesem zweiten Teil zeige ich, wie Nachrichten als “ungelesen” markiert bleiben, damit sofort ersichtlich ist, in welchem Ordner wie viel “zu tun” ist. Denn nur wenn eine E-Mail bearbeitet wurde, soll sie als gelesen markiert und die Zahl hinter dem Ordner reduziert werden.
Es gibt drei Möglichkeiten, wie man E-Mails als ungelesen markieren kann:
1) Jede E-Mail nach der Bearbeitung auf ungelesen setzen.
Nachteil: Dies muss für jede E-Mail durchgeführt werden.
2) Nie mehr eine Mail als ungelesen markieren.
Diese Einstellung findet man unter: Datei ⇒ Optionen ⇒ E-Mail ⇒ Lesebereich… ⇒ Alle Häkchen in der Maske “Lesebereich” entfernen.
Nachteil: Im eigenen Postfach ist es praktischer, wenn gelesene Nachrichten auch als gelesen markiert werden.
3) Erstellen eines Buttons, der automatisch alle Nachrichten in gewünschten Ordnern und Unterordnern nach getaner Arbeit als ungelesen markiert.
Nachteil: keine
Hier ein Video und eine Schritt-für-Schritt-Anleitung, wie Sie einen solchen Button erstellen:
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenÖffnen Sie im ersten Schritt die entsprechenden Optionen-Einstellungen: “Datei” ⇒ “Optionen”
⇒ “Trust Center” ⇒ “Einstellungen für das Trust Center….”
⇒ “Makroeinstellungen” ⇒ “Benachrichtigungen für alle Makros” aktivieren
Aktivieren Sie anschließend das Menüband “Entwicklertools”:
“Datei” ⇒ “Optionen” ⇒ “Menüband anpassen” ⇒ Häkchen bei “Entwicklertools” setzen
Starten Sie nun Outlook neu. Im Anschluss müssen Sie “Visual Basic” im Menüband “Entwicklertools” starten.
Evtl. müssen Sie eine Sicherheitswarnung bestätigen (natürlich nur, wenn man selbst ein eigenes Makro bearbeiten oder aufrufen will, nicht wenn es bei fremden E-Mails oder einfach so erscheint):
Fügen Sie ein neues “Modul” ein:
Kopieren Sie dann folgenden Code:
Option Explicit
Dim readMessages
Dim readFolder
Public Sub MarkAllItemsAsUnread()
Dim objStores As Outlook.Stores
Dim objStore As Outlook.Store
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim startzeit
MsgBox "OK klicken, um nach gelesenen Nachrichten zu suchen...", , "MarkAllItemsAsUnread"
startzeit=Timer
readMessages=0
readFolder=0
'Outlook Postfächer "öffnen" und durchgehen:
Set objStores=Outlook.Application.Session.Stores
For Each objStore In objStores
Set objOutlookFile=objStore.GetRootFolder
'Debug.Print objOutlookFile.Name
If objOutlookFile.Name="Teampostfach bewerbung@kk-software.de" Then
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType=olMailItem Then
'Debug.Print objOutlookFile.Name & "=> " & objFolder.Name
Call ProcessFolders(objFolder)
End If
Next
End If
Next
MsgBox "Fertig!" & vbCrLf & "Durchsuchte Ordner: " & readFolder & vbCrLf & "Nachrichten auf ungelesen gesetzt: " & readMessages & vbCrLf & "Dauer: " & Format(Timer - startzeit, "fixed") & " Sek.", , "MarkAllItemsAsUnread"
End Sub
Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
Dim objUnreadItems As Outlook.Items
Dim i As Integer
Dim objItem As Object
Dim objSubFolder As Outlook.Folder
Const excludefolders="|5 - ERLEDIGT|6-erledigt-abgesagt|Gesendete Elemente|Gelöschte Elemente|Archiv|Junk-E-Mail|Postausgang|RSS-Feeds|Working Set|Ausgehend|Eingehend|Feeds|Yammer-Stamm|Files|Teamchat|Verlauf der Unterhaltung|Dateien|Conversation Action Settings|Entwürfe|06 - Erledigt - abgesagt|07 - Erledigt - sonstige|Synchronisierungsfehler|"
'Nur Ordner durcharbeiten, die nicht ausgeschlossen sind:
If InStr(1, excludefolders, "|" & objCurFolder.Name & "|", vbTextCompare)=0 Then
Set objUnreadItems=objCurFolder.Items.Restrict("[Unread]=False")
'Debug.Print objCurFolder.Name & "=> " & objUnreadItems.Count
readFolder=readFolder + 1
'Alle gelesenen Nachrichten als ungelesen markieren:
For i=objUnreadItems.Count To 1 Step -1
readMessages=readMessages + 1
Set objItem=objUnreadItems.Item(i)
objItem.UnRead=True
objItem.Save
Next
'Unterordner rekursiv durchgehenen
'Achtung: Unterordner von oben ausgeschlossenen Ordnern werden nicht verarbeitet (wenn man das will, dann diesen Block aus dem oberen IF rausnehmen).
If objCurFolder.Folders.Count > 0 Then
For Each objSubFolder In objCurFolder.Folders
Call ProcessFolders(objSubFolder)
Next
End If
End If
End Sub
Ändern Sie folgende Zeilen:
If objOutlookFile.Name="Teampostfach bewerbung@kk-software.de" Then
Hier tragen Sie den Namen des Team-Postfachs ein, wie er in der linken Outlook-Leiste benannt ist.
Const excludefolders="|5 - ERLEDIGT|6-erledigt-abgesagt|Gesendete Elemente|Gelöschte Elemente|Archiv|Junk-E-Mail|Postausgang|RSS-Feeds|Working Set|Ausgehend|Eingehend|Feeds|Yammer-Stamm|Files|Teamchat|Verlauf der Unterhaltung|Dateien|Conversation Action Settings|Entwürfe|06 - Erledigt - abgesagt|07 - Erledigt - sonstige|Synchronisierungsfehler|"
Hier tragen Sie alle Ordner ein, die NICHT auf ungelesen gestellt werden sollen. Trennen Sie jeweils die Ordner mit einem senkrechten Strich | (sonst funktioniert es nicht).
Überprüfen Sie den Code durch Klicken auf “Debuggen” ⇒ “Kompilieren…”
Fügen Sie nun unter “Datei” ⇒ “Optionen” ⇒ “Menüband anpassen” rechts eine “Neue Registerkarte” hinzu. Benennen Sie diese entsprechend um und wählen Sie in der Mitte unter “Befehle auswählen” ⇒ “Makros” das neue Makro aus und fügen es mit “Hinzufügen” in die neue Registerkarte/Gruppe.
Ggfs. müssen Sie Outlook noch einmal neu starten, damit das neue Menü oben erscheint bzw. Sie das neue Menüband umbenennen können. Auch kann man unter “Umbenennen” die Beschriftung umbenennen und ein anderes Symbol auswählen.
Jetzt haben Sie im Outlook eine neue Registerkarte und können die Funktion bequem aufrufen.
Um sicher zu sein, dass es funktioniert, wurde eine Meldung eingebaut.
Sie können folgende Zeile auch löschen, wenn Sie die Meldung nicht benötigen:
MsgBox „OK klicken, um nach gelesenen Nachrichten zu suchen…“, , „MarkAllItemsAsUnread“
Je nach Anzahl der Ordner kann es einen Moment dauern, bis das Skript ausgeführt ist. Erfahrungsgemäß liegt dies zwischen einer Sekunde und auf einem langsameren Notebook 45 Sekunden. Wenn das Skript fertig ist, erscheint ein entsprechender Hinweis.
Jetzt können Sie immer mit einem Klick alle Nachrichten als ungelesen markieren und so noch effizienter arbeiten: