Si vous stockez les e-mails envoyés dans plusieurs dossiers et souhaitez maintenant compter tous ces e-mails envoyés par mois, vous pouvez lire cet article. Ici, nous allons présenter un moyen considérablement rapide de l'obtenir.
L'article précédent - "Comment compter rapidement les e-mails entrants par date, mois ou année via Outlook VBA” a partagé un moyen de compter les e-mails par mois. Cependant, il est capable de traiter les e-mails dans un dossier. Si vous souhaitez compter les e-mails dans plusieurs ou même tous les dossiers de messagerie, vous devez utiliser les autres moyens. Ainsi, dans ce qui suit, nous allons vous exposer un autre moyen beaucoup plus rapide.
Compter les e-mails envoyés par mois
- Pour commencer, accédez à l'éditeur Outlook VBA via "Alt + F11".
- Ensuite, activez la référence à "MS Excel Object Library » selon «Comment ajouter une bibliothèque d'objetsrary Référence dans VBA" .
- Après cela, placez le code VBA suivant dans un projet ou un module.
Dim objDictionary As Object
Sub CountSentMailsByMonth()
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim varMonths As Variant
Dim varItemCounts As Variant
Dim nLastRow As Integer
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
'Get the default Outlook data file
Set objOutlookFile = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Parent
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olMailItem Then
Call ProcessFolders(objFolder)
End If
Next
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
With objExcelWorksheet
.Cells(1, 1) = "Month"
.Cells(1, 2) = "Count"
End With
varMonths = objDictionary.Keys
varItemCounts = objDictionary.Items
For i = LBound(varMonths) To UBound(varMonths)
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Cells(nLastRow, 1) = varMonths(i)
.Cells(nLastRow, 2) = varItemCounts(i)
End With
Next
objExcelWorksheet.Columns("A:B").AutoFit
End Sub
Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
Dim i As Long
Dim objMail As Outlook.MailItem
Dim strMonth As String
For i = objCurFolder.Items.Count To 1 Step -1
If objCurFolder.Items(i).Class = olMail Then
Set objMail = objCurFolder.Items(i)
'Change to your own email address
If objMail.SenderEmailAddress = "you@datanumen.com" Then
strMonth = Format(Year(objMail.SentOn) & "-" & Month(objMail.SentOn), "YYYY/MM")
If objDictionary.Exists(strMonth) Then
objDictionary(strMonth) = objDictionary(strMonth) + 1
Else
objDictionary.Add strMonth, 1
End If
End If
End If
Next
End Sub
- Ensuite, déplacez le curseur dans le premier sous-programme.
- Ensuite, appuyez sur "F5" pour déclencher cette macro.
- À la fois, un fichier Excel apparaîtra, qui contient le nombre d'e-mails envoyés chaque mois, comme indiqué dans la figure ci-dessous.
Ne paniquez pas face à la corruption d'Outlook
Vous pouvez avoir tendance à vous inquiéter lorsque vous rencontrez des dommages PST. Pourtant, en réalité, mieux vaut se calmer au plus vite. Comme nous le savons tous, la panique est impuissante et conduit même à des problèmes plus chaotiques et plus graves. Vous devez rester calme pour envisager des mesures, telles que déterminer si vous avez mis à jour la sauvegarde et réfléchir à la manière de réparer la TVP – s'il faut recourir à un outil tiers comme DataNumen Outlook Repair ou contacter les professionnels concernés.
Introduction de l'auteur:
Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris réparation mdf et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com

