Ok, I think I've got it so all you have to do is start the macro. In cell A1 put the following:
=TEXT(B1,"ddd")
This will give you the day of the week. Put in a fourth "d" if you want the unabreviated version. Copy this down through cell A31.
In cell D1 enter the month (numerically). Assuming you want January's printouts, enter a 12 for now. (I'll explain later) In cell D2 enter the year (under the same assumption as for D1, enter 2001)
In B1 enter: =DATE(D2,D1,1)
In B2 enter:
Ok, I think I've got it so all you have to do is start the macro. In cell A1 put the following:
=TEXT(B1,"ddd")
This will give you the day of the week. Put in a fourth "d" if you want the unabreviated version. Copy this down through cell A31.
In cell D1 enter the month (numerically). Assuming you want January's printouts, enter a 12 for now. (I'll explain later) In cell D2 enter the year (under the same assumption as for D1, enter 2001)
In B1 enter: =DATE(D2,D1,1)
In B2 enter: =B1+1
Copy B2 down through B28
In B29 enter: =IF(B28="","",IF(DAY(B28+1)=1,"",B28+1))
Copy this down through B31
In cell E1 and going down, enter the names of the people you want to have listed on the timesheets.
Now for the macro:
Sub TimeSheets()
Dim Cntr As Integer
If Range("D1") = 12 Then
Range("D1") = 1
Range("D2") = Range("D2") + 1
Else
Range("D1") = Range("D1") + 1
End If
Cntr = 1
Do While Range("E" & Cntr) <> Empty
Range("C1") = Range("E" & Cntr)
Range("A1:C31").PrintOut Copies:=1
Cntr = Cntr + 1
Loop
End Sub
The IF/THEN will increment the date by 1 month. (The date calculations on the sheet will automatically take care of the rest.) The do loop will put a name into Cell C1 and then print the area. It will keep doing that until it runs out of names.
Hope this helps.