Avatar of Jase Alexander
Jase Alexander
Flag for United Kingdom of Great Britain and Northern Ireland asked on

Counting number of emails in Outlook folder by date

HI Guys

Hope you can help

Ive tried various pieces of code in Excel to look into my Outlook inbox, specifically in a folder called Performance Data, and basically just return the number of emails in that folder with their respective dates they were sent.

Ive tried some pieces of code that ware giving me an error on establishing the MAPI and / or returns a nil value as if the folder does not exist.

Is there a way to make this possible?

Your suggestions would be very welcome

J
Microsoft OfficeOutlookMicrosoft ExcelVB ScriptVBA

Avatar of undefined
Last Comment
Jase Alexander

8/22/2022 - Mon
Shums Faruk

It would be helpful if you provide the code you have.

Here is an example, if you need some changes let me know:
Enter date in Sheet1A1 cell
Sub HowManyDatedEmails()
Dim objOutlook As Object, objnSpace As Object, objFolder As Object
Dim EmailCount As Integer
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
   
   On Error Resume Next
   Set objFolder = objnSpace.Folders("Personal Folders").Folders("Performance Data")
   If Err.Number <> 0 Then
   Err.Clear
   MsgBox "No such folder."
   Exit Sub
   End If
   
 Dim iCount As Integer, DateCount As Integer
 Dim myDate As Date
 EmailCount = objFolder.Items.Count
 DateCount = 0
 myDate = Sheets("Sheet1").Range("A1").Value
   
 For iCount = 1 To EmailCount
 With objFolder.Items(iCount)
 If DateSerial(Year(.ReceivedTime), Month(.ReceivedTime), Day(.ReceivedTime)) = myDate Then DateCount = DateCount + 1
 End With
 Next iCount
 
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing

MsgBox "Number of emails in Performance Data folder with matching date: " & DateCount, , "Performance Data date count"
End Sub

Open in new window

Source is from here, I tweaked as per your details
SOLUTION
Emmanuel Adebayo

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Jase Alexander

ASKER
Hey Shums

Thank you for the quick response

I believe I used the same code source - it keep coming up with No Such Folder.

Ive tried all manner of combinations but no luck. Is there a way just to list ALL folders and the number of emails in each one with the dates, in case the code would be easier to manipulate this way?

Many Thanks

J
Shums Faruk

If you want emails dated for all the folder then you can try as below, changing "sales@abc.com" to your email ID and enter date in Sheet 1 A1 cell.
Sub HowManyDatedEmails()
Dim objOutlook As Object, objnSpace As Object, objFolder As Object
Dim EmailCount As Integer
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
   
   On Error Resume Next
  objnSpace.Folders("sales@abc.com").Folders("Inbox")
   If Err.Number <> 0 Then
   Err.Clear
   MsgBox "No such folder."
   Exit Sub
   End If
   
 Dim iCount As Integer, DateCount As Integer
 Dim myDate As Date
 EmailCount = objFolder.Items.Count
 DateCount = 0
 myDate = Sheets("Sheet1").Range("A1").Value
   
 For iCount = 1 To EmailCount
 With objFolder.Items(iCount)
 If DateSerial(Year(.ReceivedTime), Month(.ReceivedTime), Day(.ReceivedTime)) = myDate Then DateCount = DateCount + 1
 End With
 Next iCount
 
Set objFolder = Nothing
Set objnSpace = Nothing
Set objOutlook = Nothing

MsgBox "Number of emails in Performance Data folder with matching date: " & DateCount, , "Performance Data date count"
End Sub

Open in new window

All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
Jase Alexander

ASKER
HI Shum

Thanks for the above code - aside from it being an interesting update which I will consider using for another project I have, what I actually need for now is, and what I was trying to put across to simplify the result, is to go through all the folders in my inbox and just produce a list in Excel of the folder name with a list of sent dates for each message stored in the folders.

From this I can count the number of mails AND condense the folder list to what I actually need

Is this feasible?

J
ASKER CERTIFIED SOLUTION
Alexei Kuznetsov

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
Jase Alexander

ASKER
Hey Guys

Thanks for the help

Not exactly what I was looking for but appreciate the help

J