Nite,
Here's a bit of an "assist". It might prove useful in terms of providing more flexibility...
If you decide to give it a try, please advise as to how it "fits".
Sub FindWeekends()
Application.ScreenUpdating = False
'Note: You MUST assign the range name "datecolm" to the
'first cell containing a date in the column used for dates.
'This causes this routine to go to the cell named "datecolm"
' and uses it as the starting point of the routine.
'These variables define the columns you want colored:
startcolm = 1 '= Column A
endcolm = startcolm + 4 '= Column E
Application.Goto Reference:="datecolm"
colm = ActiveCell.Column
dcolm = Range("datecolm"

.Column
lastrow = Cells(65536, colm).End(xlUp).Offset(1, 0).Address
colm = ActiveCell.Column
dcolm = Range("datecolm"

.Column
'Prevent screen flicker
'Application.ScreenUpdating = False
myRow = ActiveCell.Row
curcell = Cells(myRow, dcolm).Value
'Cycle through rows that contain a date
'While IsDate(ActiveCell.Value)
While ActiveCell.Row < Range(lastrow).Row
myRow = ActiveCell.Row
curcell = Cells(myRow, dcolm).Value
'Test for Sunday
If WeekDay(curcell) = 1 Then
'Select range of cells to change color
start_addr = Cells(myRow, startcolm).Address
end_addr = Cells(myRow, endcolm).Address
fillrange = start_addr & ":" & end_addr
Range(fillrange).Select
'Change background color - 6 = YELLOW
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
'Test for Saturday
ElseIf WeekDay(curcell) = 7 Then
'Select range of cells to change color
start_addr = Cells(myRow, startcolm).Address
end_addr = Cells(myRow, endcolm).Address
fillrange = start_addr & ":" & end_addr
Range(fillrange).Select
'Change background color - 6 = YELLOW
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If
'Goto next row
myRow = myRow + 1
ActiveCell.Offset(1, 0).Activate
curcell = Cells(myRow, dcolm).Value
Wend
Application.ScreenUpdating = True
End Sub
Regards, ...Dale Watson dwatson@bsi.gov.mb.ca