EXCEL Steuerelemente

Hallo Kollegas,

ich habe zur Laufzeit Commandbuttons in ein Formular eingefügt.
Funktioniert alles wunderbar. Nur:

Wie ordne ich den hinzugefügten Commandbuttons Prozeduren zu, bzw. auch eine Prozedur zu, die dann weiß, von welchem CommandButton diese aufgerufen wurde?

Hinzugefügt habe ich die Command-Buttons mit folgendem Code:

Dim SE As Control

Dim Links As Integer, Oben As Integer, Breite As Integer, Hoehe As Integer, SEName As Integer

Links = 25: Oben = 20: Breite = 50: Hoehe = 17: SEName = 1

For X = 1 To 50

Oben = Oben + 30
SEName = SEName + 1

Set SE = Controls.Add(„Forms.commandbutton.1“) ', CommandButton2, Visible)
SE.Left = Links
SE.Top = Oben
SE.Width = Breite
SE.Height = Hoehe
SE.Name = „CMD_“ & SEName
SE.Caption = „OK“
SE.Font.Size = 7

Set SE = Controls.Add(„Forms.label.1“) ', CommandButton2, Visible)
SE.Left = Links - 15
SE.Top = Oben
SE.Width = Breite - 35
SE.Height = Hoehe
SE.Name = „LAB_“ & SEName
SE.Caption = X
SE.Font.Size = 7

Next X

Vielen Dank für eure Hilfe.

Gruß aus Nürnberg

Tom

Hallo Thomas,
hab’ mir mal Dein Coding ins Excel „reingezogen“ und ich muß sagen: sehr interessant!!! Knöpfchen sind da - nur wohin mit dem Coding?!?

Bei der Gelegenheit, habe ich auch festgestellt, das die Controls gar kein Index-Property haben (wie in VB) - d.h. man kann gar keine Control-Arrays machen/erzeugen.

Daher würde ich es mal wagen zu sagen, es geht nicht. Allerdings muß ich auch zugeben, dass ich so ein Coding

Controls.Add("Forms.commandbutton.1")

zum 1ten mal sehe! (was es nicht alles gibt?!?)

Werde mich mal eine bisschen umgucken - interessiert mich jetzt selber. Wenn ich was habe, gebe ich bescheid!

greets from MichL (Vienna)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo MichL,

ich weiß, ziemlich exotisch das ganze. Solltest Du was
rauskriegen, ich wäre Dir sehr dankbar !!

Greetings from Nurenberg :smile:

Tom

Hallo Tom,
habe div. Help-Files und Microsoft-HP durchforstet, aber nix gefunden. Weder dass es funktioniert, noch dass es nicht funktioniert.
Beispiele beziehen sich eigentlich sinnvollerweise auf TextBox. Eingabefelder werden erzeugt, deren Inhalt dann eingelesen werden kann.
Das was Du willst, funktioniert nicht. Control-Arrays werden von VBA, wie es aussieht, nicht unterstützt.

Wen man darüber nachdenkt, kann es auch so nicht funktionieren:

…zuerst programmiert man die Events hinein
Private CMD1_Click()
End Sub
Private CMD2_Click()
End Sub
Private CMD3_Click()
End Sub
…dann ladet man die Controls dazu (noch dazu mit unterschiedlichen Namen). Da kann ich gleich 1nen Button nach dem anderen d’raufziehen!!!

sorry … no control arrays available!
greet from MichL (Vienna)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]