Labels in Userform während der Laufzeit erstellen

Hallo Experten,

ich möchte Labels in Userform während der Laufzeit erstellen, allerdings bekomme ich immer den

Laufzeitfehler 91:
Objektvarialbe […] nicht festgelegt

Es wäre echt riesig, wenn mir hier jemand sagen könnte, wo in meinem Code der Hase im Pfeffer liegt.

CODE_BEGINN**********************************+

Dim Klicky As Control

Private Sub UserForm_initialize()
LRand = usrDPAuto.Left
ORand = usrDPAuto.Top
For H = 12 To 22
HCounter = HCounter + 1
For W = 2 To 32
WCounter = WCounter + 1
N = N + 1
Sheets(1).Cells(H, W).Select
WCell = Selection.Width
HCell = Selection.Height

'HIER KOMMT DER FEHLER
'ERSETZE ICH KLICKY.NAME DURCH EINEN STRING, BEKOMME ICH EINE ANDERE FEHLERMELDUNG (UNGÜLTIGE KLASSENZEICHENFOLGE)
'BEI KLICK AUF HILFE ERSCHEINT NICHTS
Set Klicky = usrDPAuto.Controls.Add(„MSForms.Label.1“, Klicky.Name, Visible)
usrDPAuto!Klicky.Name = „lbl“ & Format(W, „00“) & Format(H, „00“)
usrDPAuto!Klicky.Width = LRand + WCounter * WCell
usrDPAuto!Klicky.Height = HCell + HCounter * HCell
Set Klicky = Nothing
Next W
Next H
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

CODE_ENDE**************************************

Das Beispiel aus der Hilfe zu Controls.Add (s. Unten) funktioniert übrigens auch nicht (Fehler: ungültige Klassenzeichenfolge)

'BEISPIEL_CODE_BEGINN**************************

Dim Mycmd as Control
Private Sub CommandButton1_Click()

Set Mycmd = Controls.Add(„MSForms.CommandButton.1“) ', CommandButton2, Visible)
Mycmd.Left = 18
Mycmd.Top = 150
Mycmd.Width = 175
Mycmd.Height = 20
Mycmd.Caption = „This is fun.“ & Mycmd.Name

End Sub

Private Sub UserForm_AddControl(ByVal Control As _
MSForms.Control)
Label1.Caption = „Control was Added.“
End Sub

'BEISPIEL_CODE_ENDE**************************************

Wer kann mir da helfen?

Vielen Dank schon jetzt an alle, die helfen konnten,

liebe Grüße aus Berlin,

Murphy2ooo

P.S: Emails kommen komischer Weise nicht an, trotz keinerlei Filter!

Das mit den Labels habe ich jetzt hinbekommen.

Jetzt würde mich interessieren, wie ich für eine ganze Schwadron an gleichen Objekten EINE Ereignis-Sub erstelle.

Ich hab leider keine Idee, wie ich alle Labels als Objekt-GRUPPE anspreche, so in etwa

Private Sub MSForms.Label_Click()

was ja wegen dem Punkt nicht geht.

Ich bin dankbar für jede Hilfe!

Liebe Grüße

Murphy2ooo

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

Hi,
fass die Objekte zusammen, indem du sie indizierst.
Also gleicher Name, aber anderer Index.
Dann hast du für alle Objekte nur noch ein Event.
Gruß.Timo

hallo,

ich hab jetzt ein klassenmodul clsLabel erstellt, objLabel as new clsLabel gedimt und nun werden die labels auch gezeichnet, alles supi.

nun habe ich einige subs, welche die maus überwachen, also mousemove, mousedown und mouseup.

wie bitte komm ich an die nummer des labels ran, wenn sie alle schon gezeichnet wurden?

ich hab ne schleife (siehe unten) und möchte in abhängigkeit des Label-Namens eine aktion ausführen. nur kann ich immer nur den namen des aktuell angeklickten labels auslesen (myLabel.Name). Wie komme ich aber an den Namen eines Labels ran, dessen Nummer ich zwar kenne, welches ich aber nicht angeklickt habe?

for n = 1 to 150
if objLabel(n).myLabel.Name = „52“ then beep
next n

diese schleife läuft nicht innerhalb der clsLabel.

Hast du eine Idee?

Danke schonmal in Voraus,

liebe Grüße aus Berlin,

Murphy2ooo

Hi,
fass die Objekte zusammen, indem du sie indizierst.
Also gleicher Name, aber anderer Index.
Dann hast du für alle Objekte nur noch ein Event.
Gruß.Timo