Hai raena,
zum einen solltest Du nicht Sleep verwenden sondern lieber ein Delay (funktionen dafür findest Du in der Codelibrary).
Dann musst Du in der Schleife noch dafür sorgen das die Windowsnachrichten von deinem Programm "abgerufen" werden. Also ein
Application.ProcessMessages in die Schleife. Jetzt noch eine zusätzliche Variable die beim drücken des Button gesetzt wird und und in die Abbruchbedingung einbinden.
Stephan B.