Nie wiem, czy to dobry sposób na to. Może są lepsze sposoby, żeby Excel dalej pracował przy dużej ilości danych, ale nie zagłębiając się zanadto w to, możesz napisać tak (wykonuje to sleep i przerywa pracę na kilka chwil, zależnie od wpisanej wartości)
'Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
Sub loop1()
Application.Worksheets("Arkusz1").Activate
Dim Counter As Long
Counter = 0
MsgBox "Execution is started"
Do While Counter <= 20
If Counter = 5 Or Counter = 10 Or Counter = 15 Or Counter = 20 Then
Application.Range("A" & Counter).Value = Counter
Sleep (2500)
MsgBox "Execution Resumed"
End If
Counter = Counter + 1
Loop
End Sub
'Source https://www.exceltrick.com/formulas_macros/vba-wait-and-sleep-functions/?
2500ms = 2.5s, 1000ms = 1s.
ms - milisekunda, s - sekunda.
exceltrick.com