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

mehrere CommandButtons - ein Code

Forumthread: mehrere CommandButtons - ein Code

mehrere CommandButtons - ein Code
12.02.2018 20:03:17
Flo
Hallo an alle
Ich habe 6 Commandbuttons.
Alle 6 haben nach dem klicken denselben Code (siehe Unten).
Jetzt schreibe ich für jeden Button ein extra Code.
Kann man das auch verkürzen irgendwie?
Stehe da voll auf dem Schlauch
Danke Flo
Hallo an alle
Ich habe 6 Commandbuttons.
Alle 6 haben nach dem klicken denselben Code (siehe Unten).
Jetzt schreibe ich für jeden Button ein extra Code.
Kann man das auch verkürzen irgendwie?
Stehe da voll auf dem Schlauch
Danke Flo
Private Sub UserForm_Initialize()
Dim i, x As Long
x = 4
For i = 5 To 10
Controls("CommandButton" & i).Caption = Sheets("Tabelle1").Cells(3, x).Value
x = x + 1
Next i
End Sub

Private Sub CommandButton5_Click()
Unload Me
Saison = CommandButton5.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

Private Sub CommandButton6_Click()
Unload Me
Saison = CommandButton6.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

Private Sub CommandButton7_Click()
Unload Me
Saison = CommandButton7.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

Private Sub CommandButton8_Click()
Unload Me
Saison = CommandButton8.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

Private Sub CommandButton9_Click()
Unload Me
Saison = CommandButton9.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

Private Sub CommandButton10_Click()
Unload Me
Saison = CommandButton10.Caption
Call Punkte_Aktualisieren
Call TTR_pruefen_alle
End Sub

  • Anzeige

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: mehrere CommandButtons - ein Code
    12.02.2018 20:18:50
    Rudi
    Hallo,
    anstatt 6 Commandbuttons könntest du auch eine Listbox nehmen.
    Gruß
    Rudi
    AW: mehrere CommandButtons - ein Code
    12.02.2018 20:48:46
    Luschi
    Hallo Flo
    oder Du nutzt die Klassenprogrammierung: Da gibt es nur ein Click-Ereignis, man kann aber prüfen,
    welcher Button gedrückt wurden und dementsprechend noch Parameter an die dann auszuführenden Subs mitgeben.
    Gruß von Luschi
    aus klein-Paris
    Anzeige
    bei dem Level? owT
    12.02.2018 20:52:39
    Rudi
    AW: bei dem Level? owT
    12.02.2018 20:58:37
    Luschi
    Hallo Rudi,
    ich behaupte, daß 75% der User, die hier Formel- bzw. Vba-Lösungen bekommen, froh sind, wenn es klappt und nicht nachfragen, warum-weshalb-wieso!
    Gruß von Luschi
    aus klein-Paris
    welchen Sinn soll das denn haben?
    13.02.2018 03:56:57
    Matthias
    Hallo
    Wenn alle Controls(CommandButton) den selben Code ausführen sollen, reicht doch ein CommandButton
    Wenn es denn so sein muß, ist aber nicht verständlich kannst Du es nach diesem Prinzip machen
    Private Sub CommandButton5_Click()
    Unload Me
    Saison = CommandButton5.Caption
    Call Punkte_Aktualisieren
    Call TTR_pruefen_alle
    End Sub
    

    Private Sub CommandButton6_Click()
    CommandButton5=True
    End Sub
    

    Private Sub CommandButton7_Click()
    CommandButton5=True
    End Sub
    
    analog dann die anderen Controls
    Gruß Matthias
    Anzeige
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    Mehrere CommandButtons effizient nutzen


    Schritt-für-Schritt-Anleitung

    1. Setze die CommandButtons auf deiner UserForm auf. Du solltest sicherstellen, dass du mindestens 6 Buttons hast, die denselben Code ausführen sollen.

    2. Initialisiere die Buttons. Füge den folgenden Code in das UserForm_Initialize-Ereignis ein, um die Beschriftungen der Buttons aus einer Excel-Tabelle zu übernehmen:

      Private Sub UserForm_Initialize()
         Dim i, x As Long
         x = 4
         For i = 5 To 10
             Controls("CommandButton" & i).Caption = Sheets("Tabelle1").Cells(3, x).Value
             x = x + 1
         Next i
      End Sub
    3. Verkürze den Button-Code. Du kannst die Click-Ereignisse der Buttons in einen gemeinsamen Code zusammenfassen. Hier ist ein Beispiel, wie du das machen kannst:

      Private Sub CommandButton_Click(Index As Integer)
         Unload Me
         Saison = Controls("CommandButton" & Index).Caption
         Call Punkte_Aktualisieren
         Call TTR_pruefen_alle
      End Sub
    4. Verknüpfe die Buttons mit dem gemeinsamen Click-Ereignis. Stelle sicher, dass jeder Button auf das gemeinsame Click-Ereignis verweist:

      Private Sub CommandButton5_Click()
         CommandButton_Click 5
      End Sub
      Private Sub CommandButton6_Click()
         CommandButton_Click 6
      End Sub
      ' und so weiter für die anderen Buttons

    Häufige Fehler und Lösungen

    • Fehler: Der Button funktioniert nicht. Überprüfe, ob der Button richtig mit dem entsprechenden Click-Ereignis verknüpft ist.

    • Fehler: Der Code wird nicht ausgeführt. Stelle sicher, dass die Prozeduren Punkte_Aktualisieren und TTR_pruefen_alle korrekt definiert sind und keine Fehler enthalten.


    Alternative Methoden

    • Verwendung einer Listbox: Anstatt mehrere CommandButtons zu verwenden, könntest du auch eine Listbox nutzen. Diese ermöglicht es dir, die Auswahl zu treffen und den Code nur einmal zu schreiben.

    • Klassenprogrammierung: Mit der Klassenprogrammierung in VBA kannst du ein Click-Ereignis für alle Buttons implementieren und anhand des gedrückten Buttons unterschiedliche Parameter übergeben.


    Praktische Beispiele

    Hier ist ein Beispiel, wie du die oben genannten Methoden anwenden kannst:

    Private Sub CommandButton_Click(Index As Integer)
        Unload Me
        Saison = Controls("CommandButton" & Index).Caption
        Call Punkte_Aktualisieren
        Call TTR_pruefen_alle
    End Sub

    Wenn du eine Listbox verwendest, könnte der Code so aussehen:

    Private Sub ListBox1_Click()
        Saison = ListBox1.Value
        Call Punkte_Aktualisieren
        Call TTR_pruefen_alle
    End Sub

    Tipps für Profis

    • Verwende With-Anweisungen: Um deinen Code effizienter zu gestalten, kannst du With-Anweisungen verwenden, um die Anzahl der wiederholten Verweise auf das Steuerelement zu reduzieren.

    • Dokumentiere deinen Code: Füge Kommentare hinzu, um den Code besser verständlich zu machen, insbesondere wenn du mit mehreren Programmierern zusammenarbeitest.


    FAQ: Häufige Fragen

    1. Ist es möglich, den Code für alle CommandButtons in einer Prozedur zu bündeln?
    Ja, du kannst eine gemeinsame Prozedur für alle Buttons erstellen, um den Code zu vereinfachen.

    2. Welche Excel-Version benötige ich für diesen Code?
    Der Code funktioniert in Excel-Versionen, die VBA unterstützen, wie Excel 2010 und neuer.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige