Sub Delay(ByVal dblSecs As Double) Const OneSec As Double = 1.0# / (1440.0# * 60.0#) Dim dblWaitTil As Date Now.AddSeconds(OneSec) dblWaitTil = Now.AddSeconds(OneSec).AddSeconds(dblSecs) Do Until Now > dblWaitTil Application.DoEvents() ' Allow windows messages to be processed Loop End Sub