repetiven Code kürzen?
23.09.2020 11:41:22
Klaus
ich habe einen ewig langen repetiven VBA-Code fabriziert, hier ein Ausschnitt bei dem ich alles unwichtige weg gelassen habe:
Private Sub CommandButton_FA1a_Click()
myStat = "FA1a"
wks_Ausgabe.Range("G4").Value = myStat
End Sub
Private Sub CommandButton_FA1b_Click()
myStat = "FA1b"
wks_Ausgabe.Range("G4").Value = myStat
End Sub
Private Sub CommandButton_FA1c_Click()
myStat = "FA1c"
wks_Ausgabe.Range("G4").Value = myStat
End Sub
Private Sub CommandButton_FA1d_Click()
myStat = "FA1d"
wks_Ausgabe.Range("G4").Value = myStat
End Sub
Ich denke ihr seht das Muster - es soll immer der "Name" des geclickten Buttons in das Blatt übernommen werden. In Wahrheit hat der repetive Code 8 Zeilen und es sind fast 100 Buttons.Natürlich könnte ich den Namen auch aus einer Listbox auslesen und dann weiter verwenden - aus verschiedenen Gründen möchte ich aber, dass der Name per Button ausgewählt wird.
Frage1: kann ich den Namen des geklickten Button irgendwie heraus finden? ActiveControl.Name oder sowas?
Frage2: kann ich das Click-Ereignis von 3 oder 5 oder 100 Buttons abfragen, ohne 100 Button-Private-Subs zu generieren? In Pseudocode stelle ich mir das so vor:
Sub AnyButton_clicked()
myStat = right(ActiveControl.ThatHasFocus.Name, 4)
wks_Ausgabe.Range("G4").Value = myStat
End Sub
Holzweg oder plausibel?LG,
Klaus M.