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

Forumthread: Click-Ereignis für CommandButton zusammenfassen

Click-Ereignis für CommandButton zusammenfassen
17.01.2005 13:44:26
VolkerM
Hallo Experten,
Ist es möglich das Click-Ereignis von mehreren CommandButton auf einer UserForm zusammenzufassen, also einen Code für alle Button. Die Button sind durchnummeriert. Es soll jeweils die Caption in eine TextBox geschrieben werden.
Beispiel für jeden Button:

Private Sub CommandButton3_Click()
txtSuchen = CommandButton3.Caption
End Sub

Danke im Voraus
Gruß Volker
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Click-Ereignis für CommandButton zusammenfassen
Galenzo
.. da hast du dir mit "ohne VBA" ja ganzschön was vorgenommen.
OK - dann sehen wir mal, ob alles so klappt:
Gegeben ist also eine Userform, namens "Userform1" mit 4 Buttons, die da heißen: "CommandButton1" bis "CommandButton4". Und es gibt auf der Userform
auch noch ein Textfeld - "TextBox1".
Zunächst mußt du nun eine neue Klasse definieren. Dazu:
Neues Klassenmodul einfügen; dessen Name bleibt "Klasse1". Folgender Code:
Public WithEvents CmdGroup As MSForms.CommandButton

Private Sub CmdGroup_Click()
UserForm1.TextBox1 = CmdGroup.Caption
End Sub

Nun kömmt dieser Code hier in das Modul der Userform:
Dim cmdButtons(1 To 4) As New Klasse1
Private Sub UserForm_Initialize()
Dim i%
For i = 1 To 4
Set cmdButtons(i).CmdGroup = Controls("CommandButton" & i)
Next i
End Sub
Wenn du alles richtig gemacht hast, sollte es so funktionieren.
Berichte mal, wenn du erfolgreich warst, bzw. wo's Probleme macht.
Anzeige
AW: Click-Ereignis für CommandButton zusammenfassen
17.01.2005 15:06:31
VolkerM
Hallo Galenzo
Vielen Dank; es hat geklappt.
"VBA nein" ist zwar einwenig untertrieben, aber mit ohne Deine Hilfe hätte ich das bei meinem heutigen Kenntnisstand nie hinbekommen.
Gruß Volker
AW: Click-Ereignis für CommandButton zusammenfassen
Galenzo
naja, selbst mit "VBA gut" nicht gerade einfach...
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Click-Ereignis für CommandButton zusammenfassen


Schritt-für-Schritt-Anleitung

Um das Click-Ereignis für mehrere CommandButtons in einer UserForm zusammenzufassen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Neues Klassenmodul einfügen:

    • Öffne den VBA-Editor (ALT + F11).
    • Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster und wähle „Einfügen“ > „Klassenmodul“.
    • Benenne das Klassenmodul in „Klasse1“.
  2. Code für die Klasse hinzufügen:

    • Füge den folgenden Code in das Klassenmodul ein:
      
      Public WithEvents CmdGroup As MSForms.CommandButton

    Private Sub CmdGroup_Click() UserForm1.TextBox1 = CmdGroup.Caption End Sub

  3. Code in das UserForm-Modul einfügen:

    • Öffne das Modul der UserForm (z.B. „Userform1“) und füge den folgenden Code ein:
      
      Dim cmdButtons(1 To 4) As New Klasse1

    Private Sub UserForm_Initialize() Dim i% For i = 1 To 4 Set cmdButtons(i).CmdGroup = Controls("CommandButton" & i) Next i End Sub

  4. UserForm testen:

    • Starte die UserForm und klicke auf die CommandButtons. Der Text der geklickten Buttons sollte in die TextBox geschrieben werden.

Häufige Fehler und Lösungen

  • Fehler: „Objektvariable nicht gesetzt“

    • Lösung: Stelle sicher, dass die CommandButtons korrekt benannt sind (z.B. „CommandButton1“, „CommandButton2“, usw.).
  • Fehler: TextBox bleibt leer

    • Lösung: Überprüfe, ob der Code im Klassenmodul und im UserForm-Modul korrekt eingegeben wurde.

Alternative Methoden

Falls du lieber ohne VBA arbeiten möchtest, gibt es alternative Methoden, um ähnliche Funktionen zu erreichen:

  • Verwende Excel-Formeln: Du kannst die Funktionen von Excel nutzen, um Texte zu verknüpfen, wenn die Buttons auf andere Zellen verweisen.
  • ActiveX-Steuerelemente: Anstelle von MSForms.CommandButton kannst du auch ActiveX-Steuerelemente verwenden, um mehr Kontrolle über die Ereignisse zu haben.

Praktische Beispiele

Hier ein praktisches Beispiel für die Verwendung des excel vba command button click event:

Private Sub CommandButton1_Click()
    MsgBox "Button 1 wurde geklickt!"
End Sub

Mit diesem einfachen Code kannst du eine Meldung anzeigen, wenn der Button geklickt wird.


Tipps für Profis

  • Code modularisieren: Halte deinen Code modular, indem du häufig verwendete Funktionen in separate Module auslagerst.
  • Fehlerbehandlung implementieren: Nutze die Fehlerbehandlungsmechanismen in VBA, um unerwartete Fehler zu vermeiden. Beispiel:
    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Kommentare hinzufügen: Kommentiere deinen Code, um die Lesbarkeit und Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Kann ich die Methode für mehr als 4 CommandButtons verwenden? Ja, du kannst die Anzahl der CommandButtons anpassen, indem du die Array-Größe in der Dimensionierung änderst.

2. Funktioniert das auch in Excel 2016? Ja, das Beispiel funktioniert in allen modernen Excel-Versionen, die VBA unterstützen, einschließlich Excel 2016.

3. Was mache ich, wenn ich die Buttons umbenenne? Ändere einfach die Namen in deinem VBA-Code entsprechend den neuen Button-Namen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige