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

Forumthread: Userform Change Event ?

Userform Change Event ?
22.12.2017 11:06:58
Nati
Hi Leute,
habe eine Userform, möchte, dass man den "OK" button nur betätigen kann, wenn mind ein optionbutton ausgewählt ist
Userbild
, habe auch schon den Code;
Private Sub UserForm_Activate()
Dim zähler As Long
zähler = 0
Dim i As Long
For i = 1 To 17
If Workbook_Open_Pop_Up.Controls("OptionButton" & i).Value = True Then
zähler = zähler + 1
End If
Next i
If zähler > 0 Then
Workbook_Open_Pop_Up.CommandButton1.Enabled = True
End If
If zähler = 0 Then
Workbook_Open_Pop_Up.CommandButton1.Enabled = False
End If
End Sub

bloß brauche ich das passende "Change event"- bei userform.activate klappt es nicht, da es nur am anfang ausgeführt wird und dabei noch keine optionbuttons geklickt sind...
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform Change Event ?
22.12.2017 12:57:21
Armin
Hallo so
Private Sub OptionButton1_Click()
CommandButton1.Enabled = True
End Sub
Private Sub OptionButton2_Click()
CommandButton1.Enabled = True
End Sub
Private Sub OptionButton3_Click()
CommandButton1.Enabled = True
End Sub
Sub UserForm_Activate()
CommandButton1.Enabled = False
End Sub
Gruß Armin
Anzeige
AW: Userform Change Event ?
22.12.2017 17:32:51
onur

Private Sub OptionButton1_Click()

wird auch ausgeführt, wenn du OptionButton wegklickst, also egal, ob Optionbutton.Value=True oder False, dein Code wird ausgeführt und CommandButon wir deaktiviert.
AW: Userform Change Event ?
23.12.2017 07:45:02
Armin
Hallo,
das ist quatsch, die OptionsButton werden nur aus (False) wenn man einen von den drei an klickt.
Und einer ist also immer aktiv. Das war ja gewünscht!!
Gruß Armin
Anzeige
AW: Userform Change Event ?
23.12.2017 08:37:44
onur
So ein Mist, wieder mit Checkbox verwechselt!
Sorry.
AW: Userform Change Event ?
22.12.2017 17:07:56
onur

Private Sub OptionButton1_Click()
CommandButton1.Enabled = OptionButton1.value or OptionButton2.value or OptionButton3.value
End Sub
Private Sub OptionButton2_Click()
CommandButton1.Enabled = OptionButton1.value or OptionButton2.value or OptionButton3.value
End Sub
Private Sub OptionButton3_Click()
CommandButton1.Enabled = = OptionButton1.value or OptionButton2.value or OptionButton3.value
Sub UserForm_Activate()
CommandButton1.Enabled = false
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Userform Change Event in Excel VBA


Schritt-für-Schritt-Anleitung

Um den "OK" Button in einer Userform nur aktiv zu schalten, wenn mindestens ein OptionButton ausgewählt ist, kannst Du folgenden VBA-Code verwenden. Dieser Code reagiert auf die Userform-Events und die Änderungen an den OptionButtons.

  1. Öffne den VBA-Editor (ALT + F11).
  2. Füge eine Userform hinzu und platziere mehrere OptionButtons sowie einen CommandButton.
  3. Füge den folgenden Code in die Userform ein:

    Private Sub UserForm_Activate()
       CommandButton1.Enabled = False
    End Sub
    
    Private Sub OptionButton1_Click()
       CommandButton1.Enabled = OptionButton1.Value Or OptionButton2.Value Or OptionButton3.Value
    End Sub
    
    Private Sub OptionButton2_Click()
       CommandButton1.Enabled = OptionButton1.Value Or OptionButton2.Value Or OptionButton3.Value
    End Sub
    
    Private Sub OptionButton3_Click()
       CommandButton1.Enabled = OptionButton1.Value Or OptionButton2.Value Or OptionButton3.Value
    End Sub

Mit diesem Code wird der "OK" Button nur aktiviert, wenn mindestens einer der OptionButtons ausgewählt ist. Dies ist ein typisches Beispiel für die Verwendung von Excel VBA Userform Events.


Häufige Fehler und Lösungen

  • Fehler: Button bleibt deaktiviert, obwohl ein OptionButton ausgewählt wurde.

    • Lösung: Stelle sicher, dass die Click-Ereignisse für alle OptionButtons korrekt eingerichtet sind. Prüfe, ob die Logik in den Click-Ereignissen auch tatsächlich den Status der OptionButtons überprüft.
  • Fehler: Userform wird nicht aktiviert.

    • Lösung: Überprüfe, ob die Userform korrekt geladen wird. Du kannst dies im VBA-Editor testen, indem Du die Userform manuell öffnest.

Alternative Methoden

Eine alternative Methode zur Handhabung des Change Events ist die Verwendung des UserForm_Initialize-Events, um den Status der Buttons beim Start zu setzen. Du kannst auch die VBA TextBox Change Event verwenden, um auf Änderungen in Textfeldern zu reagieren und die Schaltflächen entsprechend zu aktivieren oder zu deaktivieren.

Private Sub UserForm_Initialize()
    CommandButton1.Enabled = False
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine Userform mit einer ComboBox und einem Textfeld erstellen kannst, um die Funktionalität zu erweitern. Du könntest die Excel VBA ComboBox Change Event verwenden, um den "OK" Button basierend auf der Auswahl in der ComboBox zu aktivieren.

Private Sub ComboBox1_Change()
    CommandButton1.Enabled = (ComboBox1.ListIndex <> -1)
End Sub

Dieses Beispiel zeigt, wie man verschiedene Userform Events kombinieren kann, um eine dynamische Benutzeroberfläche zu erstellen.


Tipps für Profis

  • Verwende With-Anweisungen, um den Code zu optimieren und leserlicher zu machen.
  • Teste die Userform gründlich in verschiedenen Szenarien, um sicherzustellen, dass alle VBA Userform Events wie erwartet reagieren.
  • Bei komplexeren Userforms kann es sinnvoll sein, eine separate Funktion zu erstellen, die die Logik zur Aktivierung und Deaktivierung des "OK" Buttons verwaltet.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Userform Events zusammen verwenden?
Du kannst die verschiedenen Events einfach in der Userform kombinieren, indem Du den Code für jeden Button oder jedes Feld zusammenfügst.

2. Was ist der Unterschied zwischen OptionButton_Click und UserForm_Activate?
OptionButton_Click wird ausgelöst, wenn der Benutzer auf einen der OptionButtons klickt, während UserForm_Activate beim Öffnen der Userform ausgeführt wird.

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