Hallo,
Middels een macro die ik elders heb gevonden (en iets heb aangepast) is het me gelukt om gedurende de dag een overzicht te tonen van het aantal ongelezen e-mails in Outlook-mappen. In een grafiek wordt vervolgens het resultaat van een drietal mappen getoond. Dit werkt goed, tot het moment dat er mappen worden toegevoegd/verwijderd. De grafiek verwijst namelijk naar bepaalde regels waar de gewenste mappen staan. Door mappen toe te voegen/te verwijderen komen die mappen echter op een andere regel te staan, waardoor de grafiek de verkeerde waarden toont.
Het liefst zou ik de macro zo aanpassen dat niet alle mappen worden doorlopen, maar slechts die mappen die ik nodig heb. Dan werkt mijn grafiek altijd. Ik heb wat pogingen ondernomen, echter zonder resultaat. Dit is de macro die ik gebruik:
Deze code wordt aangeroepen op het moment dat de werkmap wordt geopend en wordt iedere 30 seconden herhaald. Heeft iemand een suggestie hoe ik alleen de gewenste mappen kan uitvragen?
Groet,
Anika
Middels een macro die ik elders heb gevonden (en iets heb aangepast) is het me gelukt om gedurende de dag een overzicht te tonen van het aantal ongelezen e-mails in Outlook-mappen. In een grafiek wordt vervolgens het resultaat van een drietal mappen getoond. Dit werkt goed, tot het moment dat er mappen worden toegevoegd/verwijderd. De grafiek verwijst namelijk naar bepaalde regels waar de gewenste mappen staan. Door mappen toe te voegen/te verwijderen komen die mappen echter op een andere regel te staan, waardoor de grafiek de verkeerde waarden toont.
Het liefst zou ik de macro zo aanpassen dat niet alle mappen worden doorlopen, maar slechts die mappen die ik nodig heb. Dan werkt mijn grafiek altijd. Ik heb wat pogingen ondernomen, echter zonder resultaat. Dit is de macro die ik gebruik:
Code:
Option Explicit
Public mdNextTime As Double
Dim ws As Worksheet
Dim iRow As Integer
Dim objNS As Outlook.Namespace
Const bTitles As Boolean = True ' do we want column titles?
Public Sub ListFolders()
mdNextTime = Now + TimeValue("00:00:30")
Application.OnTime mdNextTime, "ListFolders"
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets("Blad1")
Set objNS = Outlook.Application.GetNamespace("MAPI")
ws.UsedRange.ClearContents
iRow = IIf(bTitles, 1, 0)
If bTitles Then ws.Range("A1:D1") = Array("Folder Path & Name", "Items", "", "Indented List Of Folders")
ws.Range("A1:D1").Font.Bold = bTitles
ListFromFolder objNS, 1, ""
ws.Cells(iRow + 1, 2) = "=SUM(B" & IIf(bTitles, "2", "1") & ":B" & CStr(iRow) & ")"
ws.UsedRange.ColumnWidth = 4
ws.Columns("A:B").AutoFit
Set objNS = Nothing
Set ws = Nothing
Application.ScreenUpdating = True
End Sub
Private Sub ListFromFolder(objFolderRoot As Object, argLevel As Integer, argFullName As String)
Dim objFolder As MAPIFolder
For Each objFolder In objFolderRoot.Folders
DoEvents
iRow = iRow + 1
' full folder path in column A
ws.Cells(iRow, 1) = argFullName & "\" & objFolder.Name
' count of items in folder in column B
On Error Resume Next
ws.Cells(iRow, 2) = objFolder.UnReadItemCount
'.Count
On Error GoTo 0
' indented folder list in column C onwards
ws.Cells(iRow, argLevel + 3) = objFolder.Name
If objFolder.Folders.Count > 0 Then
ListFromFolder objFolder, argLevel + 1, argFullName & "\" & objFolder.Name
End If
Next objFolder
Set objFolder = Nothing
End Sub
Groet,
Anika