Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Warten bis CommandButton geklickt wird

Warten bis CommandButton geklickt wird
22.01.2005 14:25:38
Kai
Hallo Profis!
Wie kann ich VBA erklaehren, dass es mit der Ausfuehrung des Codes warten soll, bis ein bestimmter CommandButton geklickt wird.
Zum Hintergrund: Daten sollen sortiert werden. Weiss das Makro nicht weiter, soll es anhalten, der User sortiert manuell, klickt und das Makro kann weiter arbeiten.
Danke im voraus fuer die Hilfe.
Gruss
Kai
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warten bis CommandButton geklickt wird
22.01.2005 14:32:09
Matthias
Hallo Kai,
etwas ungewöhnlich, aber bitte:
in ein normales Modul:
Option Explicit
Public WEITER As Boolean
Sub test()
[a1] = "Warte auf Button..."
WEITER = False
Do
DoEvents
Loop Until WEITER = True
[a1] = "OK, Danke!"
End Sub
der Code des CommandButtons:
Private Sub CommandButton1_Click()
WEITER = True
End Sub
Gruß Matthias
Anzeige
AW: Warten bis CommandButton geklickt wird
23.01.2005 07:35:50
Kai
Hallo Matthias,
Danke f[r den Tip! Es scheint zu klappen.
Gruss
Kai
;
Anzeige
Anzeige

Infobox / Tutorial

CommandButton in Excel VBA: Warten bis zur Benutzerinteraktion


Schritt-für-Schritt-Anleitung

Um VBA zu erklären, dass es auf einen CommandButton warten soll, bevor es mit der Ausführung fortfährt, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor (ALT + F11 in Excel).

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Arbeitsmappe Name)" > Einfügen > Modul.

  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    Public WEITER As Boolean
    
    Sub test()
       [A1] = "Warte auf Button..."
       WEITER = False
       Do
           DoEvents
       Loop Until WEITER = True
       [A1] = "OK, Danke!"
    End Sub
  4. Füge den Code für den CommandButton hinzu: Doppelklicke auf den CommandButton in deiner Arbeitsmappe und füge diesen Code ein:

    Private Sub CommandButton1_Click()
       WEITER = True
    End Sub
  5. Teste das Makro: Schließe den VBA-Editor und führe das Makro test() aus. Es wird auf die Interaktion des Benutzers mit dem CommandButton warten.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Lösung: Stelle sicher, dass der Name des CommandButtons korrekt ist und dass sich der Code im richtigen Modul befindet.
  • Fehler: Das Makro reagiert nicht

    • Lösung: Überprüfe, ob die Zeile DoEvents korrekt im Code vorhanden ist. Diese Zeile ermöglicht es Excel, auf Benutzerinteraktionen zu reagieren.

Alternative Methoden

Falls du eine andere Methode bevorzugst, um in Excel VBA zu warten, kannst du stattdessen ein Formular verwenden, das den CommandButton enthält. Auf diese Weise wird das Hauptfenster von Excel nicht blockiert. Hier ist eine kurze Anleitung:

  1. Erstelle ein UserForm: Rechtsklick auf "VBAProject" > Einfügen > UserForm.

  2. Füge einen CommandButton zum UserForm hinzu.

  3. Verwende den folgenden Code im UserForm:

    Private Sub CommandButton1_Click()
       Me.Hide
    End Sub
  4. Rufe das UserForm im Hauptmakro auf:

    Sub test()
       UserForm1.Show
       [A1] = "OK, Danke!"
    End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie du diese Technik in einem praktischen Szenario verwenden kannst:

  • Daten sortieren und warten: Angenommen, du möchtest, dass der Benutzer eine Datenreihe sortiert, bevor das Makro fortfährt. Verwende den obigen Code, um sicherzustellen, dass das Makro wartet, bis der Benutzer auf den CommandButton klickt.

Tipps für Profis

  • Verwende Statusanzeigen: Du kannst den Benutzer durch Statusmeldungen informieren, indem du die Zelle A1 aktualisierst.
  • Erweiterte Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass das Makro auch bei unerwarteten Problemen stabil bleibt.

FAQ: Häufige Fragen

1. Wie kann ich das Warten auf mehrere Buttons umsetzen?
Du kannst mehrere Boolean-Variablen verwenden, um auf mehrere Buttons zu warten, und die Schleife entsprechend anpassen.

2. Funktioniert das auch in Excel Online?
Leider unterstützt Excel Online VBA nicht. Diese Lösung funktioniert nur in Desktop-Versionen von Excel.

3. Kann ich das auch ohne VBA machen?
Es gibt keine direkte Methode, um in Excel ohne VBA auf eine Benutzerinteraktion zu warten. VBA ist die beste Lösung für dieses Problem.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige