Do While-Schleife mit einem Button "Stop" unterbrechen

  • Excel

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Do While-Schleife mit einem Button "Stop" unterbrechen

    Hallo zusammen,

    habe wieder eine Frage.

    wie kann ich eine Schleife mit einem Button unterbrechen, finde im google keine passende Lösung.......



    In Userform habe ich eingebaut:

    Option Explicit
    Private bAbort As Boolean

    Private Sub CommandButtonStop_Click()
    bAbort = False

    End Sub



    Private Sub CommandButtonStart_Click()

    Worksheets("Tabelle1").CommandButton3.Value = True

    End Sub

    in der Tabelle1:

    Public Sub CommandButton3_Click()
    bAbort = True



    Do While (zahl1< zahl2) And (zahl3 >= zahl4)

    die Schleife läuft........

    Loop

    End Sub

    wie kann ich mit dem Button "Stop" in Userform die Schleife, welche in "Tabelle1" läuft stoppen?
    ich glaube es liegt an dem, dass mein Button Stop in userform und die schleife in Tabelle1 sich befindet.

    In Userform habe ich eingebaut:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private bAbort As Boolean
    3. Private Sub CommandButtonStop_Click()
    4. bAbort = False
    5. End Sub
    6. Private Sub CommandButtonStart_Click()
    7. Worksheets("Tabelle1").CommandButton3.Value = True
    8. End Sub


    in der Tabelle1:

    Visual Basic-Quellcode

    1. Public Sub CommandButton3_Click()
    2. bAbort = True
    3. Do While bAbort And (zahl1< zahl2) And (zahl3 >= zahl4)
    4. die Schleife läuft........
    5. DoEvents
    6. Loop
    7. End Sub






    fehlt bestimmt irgend eine Kleinigkeit.........
    über die Gültigkeit habe ich auch schon überlegt.........

    Die Schaltfäche:

    Visual Basic-Quellcode

    1. Public Sub CommandButton3_Click()




    ist Public, d.h. auf die habe ich von außen Zugriff, und bAbort ist in Userform deklariert ganz oben, habe gedacht dass das bAbort soweit genug Freiraum hat.....

    Option Explicit

    Visual Basic-Quellcode

    1. Option Explicit
    2. Public bAbort As Boolean




    was stimmt nicht..........?
    ja, wenn ich so mache und schreibe in Userform im CommandButtonStart_Click bAbort = True rein, dann läuft die Schleife überhaupt nicht, d.h. ich kann irgend wie nicht von Userform in Tabelle1 bAbort = True senden.



    Visual Basic-Quellcode

    1. Private Sub CommandButtonStart_Click()
    2. Worksheets("Tabelle1").CommandButton3.Value = True
    3. bAbort = True
    4. End Sub



    Visual Basic-Quellcode

    1. Public Sub CommandButton3_Click()
    2. 'bAbort = True
    in Userform:



    Visual Basic-Quellcode

    1. Option Explicit
    2. Public bAbort As Boolean
    3. 'Button Start in Userform
    4. Private Sub CommandButtonStart_Click()
    5. ...
    6. ...
    7. 'CommandButton3 in der Tabelle 1 wird aktiviert
    8. Worksheets("Tabelle1").CommandButton3.Value = True
    9. End Sub
    10. 'Button Stop in Userform
    11. Private Sub CommandButtonStop_Click()
    12. bAbort = False
    13. End Sub




    Im Arbeitsblatt "Tabelle1"

    Visual Basic-Quellcode

    1. 'butten der in der Tabelle1 in zelle plaziert ist
    2. Public Sub CommandButton3_Click()
    3. bAbort = True
    4. Do While bAbort And (zahl1 < zahl2) And (zahl3 >= zahl4)
    5. ......schleife läuft
    6. DoEvents
    7. Loop




    was ist falsch...........mit dem Userformm und noch dazu einem Button in der Tabelle1 ist echt komplieziert...........
    Ne kompliziert ist es nicht wenn mann richtig liest.

    Visual Basic-Quellcode

    1. 'CommandButton3 in der Tabelle 1 wird aktiviert
    2. Worksheets("Tabelle1").CommandButton3.Value = True

    Tut was Du sagst: Aktiviert die Schaltfläche führt sie aber nicht aus.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Schaltfläche in der Tabelle 1 isd das "CommandButton3", klikt man da drauf wird die Schleife ausgeführt und die Ergebnisse ausgegeben, oder eine zweite Möglichkeit die Schleife auszuführen ist über den Userform in dem man dort auf die Schalftfläche Start draufklickt. In Userform über die Schaltfläche Start aktiviere ich in der Tabelle1 CommandButton3 und die Schleife wird ausgeführt. Jetzt soll es möglich sein mit der Schaltfläche Stop in Userform die Schleife frühzeitig zu beenden.
    so habe geschaft, danke! Habe es so gelöst: ein weiteres Button in der Tabelle1 eingefügt, dann hat es sofort funktioniert und im Userform beim draufklicken auf die Schaltfläche Stop (oder Abbruch) wird in der Tabelle1 die neue Schaltfläche aktiviert. Genau so wie in Userform über Start die Schaltfläche in der Tabelle1 aktiviert wird. Also egal, möchte nur DANKE sagen, hätte sonst nicht geschafft!