Here's an example macro that illustrates DoEvents. The macro runs a long counter and changes the value in A1 (so you can see it working) but you can still do some basic operations, like select different cells/worksheets, minimize workbook.
[pre]
[/pre]
[pre]
Code:
Sub ExampleDoEvents()
x = 1
For i = 1 To 10000000
If i Mod 1000 = 0 Then
DoEvents
x = x + 1
Range("A1").Value = x
End If
Next i
End Sub