Why are you specifying that it's a Private macro? A Public Sub in a standard Module might be the best solution.
The idea of doing something if it's a particular day is easy:
VBA Code:
If Day(Date) = 10 Then ' 12 , etc.
MyMacro
End If
But there are two things we need to know to give a complete solution.
1. Something has to invoke this macro to check to see if today is the 10th of the month. Do you want this to be part of some other macro, have the user click a button, run every time the file opens? If you want this to run even if the file is closed, then you will need to set up a Windows Task scheduler, which is outside the scope of Excel.
2. I assume you only want it to run once. So there has to be a way for it to record that it has already run for that day. Is that built into your data somewhere? If not, we have to design it.