Option Explicit 'You Can remove this line if you want to leave out 'the "Dim" lines, but this is more effecient Sub ChangeColors() Dim iColor As Integer Dim Counter As Integer For Counter = 1 To 20 'Number of changes 'This next line is optional, but it helps show what it's doing ActiveSheet.Cells(1, 1).Value = Counter iColor = Int(Rnd * 55) + 1 '1 through 56 ActiveSheet.Cells(1, 1).Interior.ColorIndex = iColor iColor = Int(Rnd * 55) + 1 '1 through 56 ActiveSheet.Cells(1, 1).Font.ColorIndex = iColor WaitAWhile Next Counter End Sub Sub WaitAWhile() Dim NewHour As Date Dim NewMinute As Date Dim NewSecond As Date Dim WaitTime As Date NewHour = Hour(Now()) NewMinute = Minute(Now()) NewSecond = Second(Now()) + 1 'However many seconds between changes WaitTime = TimeSerial(NewHour, NewMinute, NewSecond) Application.Wait WaitTime End SubWill do what you want when you run the ChangeColors macro.