I think your code is in a kind of catch 22 situation.
Try this code :

Code:
Private Sub DoSomething()
   Text1 = "working"
   Do Until Text1 = "Quit"
        DoEvents
   Loop
   Text1 = "Ready"
   MsgBox "Hello"
End Sub

Private Sub Command1_Click()
    DoSomething
End Sub

Private Sub Command2_Click()
    Text1 = "Quit"
End Sub
- jamie