Warten auf Eingabe von User

Hallo,

vielleicht kann mir jemand bei einem Problem mit excelbasiertem VB helfen.

Ich möchte mein Programm bis zu einem gewissen Punkt durchlaufen lassen. Dann aber sollte ein Formular geöffnet werden, das erst bei einem Klick des Users wieder geschlossen wird. So weit so gut… eigentlich kein Problem. Schwierig wird’s aber, wenn der User während dass das Formular geöffnet ist, noch Änderungen in Tabellenblättern vornehmen soll. Mit vbModal = True können die Tabellen nicht geändert werden. Mit vbModal = False können zwar Änderungen durchgeführt werden, der Programmcode läuft aber im Hintergrund weiter.

Wenn ich nachfolgende Subprogramme im Makro des Command_Buttons starte funktioniert es. Allerdings scheint mir das eine ziemlich unsaubere Lösung zu sein. Ich möchte alle weiteren Subprogramme im Hauptprogramm aufrufen, um die Übersichtlichkeit zu wahren.

Weiß da jemand einen Befehl/Trick, um das Problem zu lösen?

Danke
Günther

Hallo,

wenn ich dein Problem richtig verstanden habe, wuerde ich mal sagen das sich zur Loesung nur ein Ansatz anbietet. Du must deine Verarbeitungsroutine in einen eigenen Thread verpacken, dann kannst du mittels eines Dialoges, der nur Modal fuer diesn Thread arbeitet deine Verarbeitung anhalten, waerend man weiterhin in den anderen Fenster der Applikation weiterarbeiten kann.

Zur programmierung von Threads in VBA gibt es im WWW einige Anleitungen, allerdings ist die gesamte Multithread-Programmierung nicht trivia, auserdem muss man so ziehmlich alles ueber die Win-API programmieren.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]