I think i'm starting to understand a little better. i ran into a similar problem with my solitaire game. copy and paste the below code exactly into a blank workbook and run it for 40 seconds. let me know if this puts you on the right track. the only problem this poses is if you begin the macro before midnight and it continues beyond midnight. if this code works for you i can show you a work around for that.
Sub a()
'
' a Macro
'
If Range("c1").Value = "stop" Then ' type this 'safe' word into cell c1 if you want the macro to end
End
End If
If Range("b1").Value = 1 Then ' if you end the macro reset cell b1 to blank or 0 before you start it again
GoTo 5
End If
Range("B3").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*86400)/10"
Range("C3").Select
ActiveCell.FormulaR1C1 = "=ROUNDDOWN(RC[-1],0)"
Range("A1:A3").Select
Selection.NumberFormat = "h:mm:ss;@"
Range("A7").Select
Selection.NumberFormat = "General"
Range("B1").Select
Selection.NumberFormat = "0"
Range("B3").Select
Selection.NumberFormat = "General"
Range("C3").Select
Selection.NumberFormat = "General"
Range("A1:B2").Select
Selection.Font.ThemeColor = xlThemeColorDark1
Range("B3:C3").Select
Selection.Font.ThemeColor = xlThemeColorDark1
Range("c1") = "Type the word 'stop' in cell c1 to stop the macro"
Range("C1").Select
Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
Range("a6") = "Number of times macro get_names ran:"
Range("a1").Value = Now()
Range("a2").Value = Range("a1").Value ' this becomes the time stamp for beginning of macro
Range("b1").Value = 1 ' let's the macro know it already set the time stamp
5
Application.OnTime Now + TimeValue("00:00:1"), "a"
' this line will make the macro run automatically every 1 second. to make it stop hit esc repeatedly or type the
' word 'stop' into cell c1, this is going to allow you to use the spreadsheet while the macro is performing
' in the background
Range("a3").Value = Now() - Range("a2").Value ' this is your new time clock, no matter how slow the macro runs it will
' always 'catch up' because it will always be looking at real time minus your original time stamp
If Range("b3").Value = Range("c3").Value And Range("b3").Value > 0 Then ' checks if timer is at a multiple of 10
Range("a7").Value = Range("a7").Value + 1 ' this line would be replaced with your 'get_names' macro
End If
'
End Sub