Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Abfrage ob Klick auf Button erfolgt ist

Abfrage ob Klick auf Button erfolgt ist
Frank
Hallo Zusammen!!!
Wieder einmal eine Frage: Mittels einer UF werden Daten in ein Tabellenblatt geschrieben. Auf der UF befinden sich 4 CommandButton, welche Daten in das Tabellenblatt eintragen. Der 5. Button schließt dann die UF. Nun möchte ich, dass wenn der User auf den 5. Button klickt zuvor geprüft wird ob die anderen 4 Button zuvor angewählt wurden. Ist so etwas realisierbar? Wenn ja,bitte zeigt mir den Code!!!
Danke und Gruß Frank H.!!!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Bool'sche Algebra : Bitvergleich
13.07.2010 15:24:22
NoNet
Hallo Frank,
hier mal eine etwas ungewöhnliche Methode, zu überprüfen, ob ALLE Buttons angeklickt wurden oder nicht :
Dim bolGeklickt As Byte
Private Sub CommandButton1_Click()
bolGeklickt = bolGeklickt + (Not bolGeklickt And 1)
End Sub
Private Sub CommandButton2_Click()
bolGeklickt = bolGeklickt + (Not bolGeklickt And 2)
End Sub
Private Sub CommandButton3_Click()
bolGeklickt = bolGeklickt + (Not bolGeklickt And 4)
End Sub
Private Sub CommandButton4_Click()
bolGeklickt = bolGeklickt + (Not bolGeklickt And 8)
End Sub
Private Sub CommandButton5_Click()
If bolGeklickt = 15 Then
MsgBox "OK - Es wurden alle Buttons zuvor angeklickt !", , "Danke schön"
Unload Me 'UserForm schließen
Else
MsgBox "Es wurden nicht alle Buttons angeklickt !"
End If
End Sub
Wenn ein Button angeklickt wird, erhöht sich der Wert der Variable bolGeklickt um 1, 2, 4 oder 8 (falls dieser Button zum ersten Mal angeklickt wurde). In der summe muss die Variable also 15 (=1+2+4+8) ergeben, erst dann wird das UF geschlossen !
Gruß, NoNet
Anzeige
AW: Abfrage ob Klick auf Button erfolgt ist
13.07.2010 15:30:22
fcs
Hallo Frank,
im UF-Modul entsprechende Boolsche Variablen deklaren. In der Commandbutton1 bis 4-Prozedur3n wird eine der Variablen auf True gesetzt.
In der 5. Prozedur prüfst du dann ob alle 4 Variablen auf True stehen.
Gruß
Franz
Option Explicit
Private StatusButton1 As Boolean, StatusButton2 As Boolean, StatusButton3 As Boolean
Private StatusButton4 As Boolean
Private Sub Commandbutton1()
StatusButton1 = True
End Sub
Private Sub Commandbutton2()
StatusButton2 = True
End Sub
Private Sub Commandbutton3()
StatusButton3 = True
End Sub
Private Sub Commandbutton4()
StatusButton4 = True
End Sub
Private Sub Commandbutton5()
'Schließen-Button
If StatusButton1 And StatusButton2 And StatusButton4 And statusbutton5 Then
StatusButton1 = False: StatusButton2 = False: StatusButton3 = False: StatusButton4 = False
Unload Me ' oder Me.Hide
Else
MsgBox "Es wurden noch nicht alle 4 Commandbuttons abgearbeitet"
End If
End Sub

Anzeige
AW: Abfrage ob Klick auf Button erfolgt ist
13.07.2010 16:12:44
Frank
Hallo Ihr Zwei!!!
Vielen herzlichen Dank für die wie immer schnelle und vor allem sehr professionelle Hilfe. Funzt Super - ich entschied mich für NoNet seinern Vorschlag!!! Einfach Spitze das Forum mit seinen vielen Helfern!!!
Danke und 'nen schönen Tag dann noch!!!
Gruß Frank H.!!!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Abfrage ob Klick auf Button erfolgt ist


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob alle 4 CommandButtons in einer UserForm (UF) angeklickt wurden, kannst du folgende VBA-Technik verwenden. Die Anleitung beschreibt die Umsetzung Schritt für Schritt:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Erstelle eine UserForm: Füge eine neue UserForm hinzu und platziere 5 CommandButtons darauf.

  3. Deklariere die Variablen: In der UserForm musst du Boolsche Variablen deklarieren, um den Status der Buttons zu speichern.

    Option Explicit
    Private StatusButton1 As Boolean, StatusButton2 As Boolean
    Private StatusButton3 As Boolean, StatusButton4 As Boolean
  4. Programmierung der Buttons: Implementiere den Code für die CommandButtons 1 bis 4, um deren Status zu aktualisieren:

    Private Sub CommandButton1_Click()
       StatusButton1 = True
    End Sub
    
    Private Sub CommandButton2_Click()
       StatusButton2 = True
    End Sub
    
    Private Sub CommandButton3_Click()
       StatusButton3 = True
    End Sub
    
    Private Sub CommandButton4_Click()
       StatusButton4 = True
    End Sub
  5. Implementiere den Schließen-Button: Füge den Code für den 5. Button hinzu, um zu prüfen, ob alle anderen Buttons angeklickt wurden:

    Private Sub CommandButton5_Click()
       If StatusButton1 And StatusButton2 And StatusButton3 And StatusButton4 Then
           MsgBox "Alle Buttons wurden angeklickt. UserForm wird geschlossen."
           Unload Me
       Else
           MsgBox "Nicht alle Buttons wurden angeklickt!"
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Die UserForm schließt sich nicht
    Lösung: Überprüfe, ob die Variablen für die Buttons korrekt gesetzt werden. Stelle sicher, dass die Button-Klick-Ereignisse nicht auskommentiert oder fehlerhaft sind.

  • Fehler: MessageBox erscheint, obwohl alle Buttons geklickt wurden
    Lösung: Stelle sicher, dass die Variablen StatusButton1, StatusButton2, StatusButton3 und StatusButton4 alle auf True gesetzt sind, bevor du den 5. Button drückst.


Alternative Methoden

Eine alternative Methode zur Überprüfung, ob alle Buttons angeklickt wurden, ist die Verwendung einer Integer-Variable, um den Status zu speichern. Hier ist ein Beispiel für diese Methode:

Dim bolGeklickt As Byte

Private Sub CommandButton1_Click()
    bolGeklickt = bolGeklickt + 1
End Sub

' Füge ähnliche Subroutinen für die anderen Buttons hinzu

Private Sub CommandButton5_Click()
    If bolGeklickt = 4 Then
        MsgBox "Alle Buttons angeklickt!"
        Unload Me
    Else
        MsgBox "Nicht alle Buttons wurden angeklickt!"
    End If
End Sub

Praktische Beispiele

Hier ist ein praktisches Beispiel für die Verwendung der beschriebenen Methode:

  1. UserForm mit 5 Buttons erstellen: Erstelle eine UserForm mit 5 CommandButtons.
  2. Verwende den oben genannten Code: Implementiere den Code in die entsprechenden Button-Klick-Ereignisse.
  3. Teste die UserForm: Klicke die ersten 4 Buttons und dann den 5. Button. Du solltest die Bestätigungsmeldung sehen, dass alle Buttons angeklickt wurden.

Tipps für Profis

  • Verwende Debugging: Nutze Debug.Print oder Haltepunkte, um den Status der Variablen während der Ausführung zu überwachen.
  • Modularisierung: Du kannst die Logik in separate Prozeduren auslagern, um die Lesbarkeit des Codes zu verbessern.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsmechanismen, um Probleme wie unerwartete Eingaben zu behandeln.

FAQ: Häufige Fragen

1. Kann ich mehr als 4 Buttons verwenden?
Ja, du kannst die Anzahl der Buttons erhöhen, indem du die Logik entsprechend anpasst und weitere Boolsche Variablen oder Integer-Werte verwendest.

2. Funktioniert das auch in Excel 2013?
Ja, die beschriebenen Methoden sind in den meisten Excel-Versionen, einschließlich Excel 2013, anwendbar.

3. Was tun, wenn ich keine UserForm erstellen kann?
Wenn du keine UserForm erstellen kannst, kannst du auch ein Excel-Arbeitsblatt verwenden und Formeln oder VBA verwenden, um ähnliche Logik anzuwenden.

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