ich bin gerade dabei, mein Wissen um UserForms zu vertiefen und bin auf ein Problem in der schleifengesteuerten Einrichtung von UserForms gestoßen. Die Suche im Forum und auf meiner Herber CD hat bisher keinen Lösungsansatz zu Tage gefördert.
Also: Ich richte auf einer UserForm über eine For i = 1 to 5 Schleife 5 CommandButtons ein, die über Set cmdButton = Me.Controls.Add("Forms.CommandButton.1", "cmdButton", True) angewiesen werden. Die Buttons kommen auch alle problemlos. Nun hänge ich aber fest.
1. Wie kann ich es erreichen, daß jeder Button seinen einzigartigen Namen bekommt = cmdButton & i, so daß die 5 Buttons nicht jeder cmdButton heißt. Da habe ich schon eine Idee. Das Problem zieht sich aber weiter. Wie kann ich diese Button Gruppe allgemeingültig deklarieren. In diesem Beispiel sind es 5 Buttons. In Realitas werden es um die 50 sein. Es erscheint mir nicht zielführend, 50 mal zu hinterlegen:
Dim cmdButton1 as msForms.CommandButton
Dim cmdButton2 as msForms.CommandButton
Ginge das nicht eleganter? Eine Klassendeklaration ? Ich kenne mich da leider noch nicht so gut aus und möchte es gern lernen.
2. Wenn die 5 Buttons alle separate Namen haben, korrekt deklariert sind, wie kann ich dann auswerten, welcher von den 5 Buttons gedrückt wurde? Auch hier wieder unter Umgehung von x facher Erstellung eines Private WithEvents cmdButton1 As MSForms.CommandButton bzw. Private Sub cmdButton1_Click()
Der Code soll immer erkennen, welcher Button gedrückt wurde und testweise dessen Caption über Debug.Print ausgeben.
Zum Hintergrund: Ich will versuchen, mir ein eigenes RGB gesteuertes Farbwahlmenü in Form einer UserForm zu programmieren. Ich habe zwar ColorPicker Ansätze gefunden, aber die kreieren vorher immer noch ein Hilfs- Worksheet. Das will ich über den Weg einer UserForm vermeiden.
https://www.herber.de/bbs/user/69942.xls
Ich würde mich sehr freuen und wäre dankbar, wenn jemand ein paar kluge Ansätze zur Lösung des Problems hat.
Viele Grüße aus Berlin, Andreas Hanisch