Thema Datum  Von Nutzer Rating
Antwort
10.03.2020 12:31:32 Sebastian
NotSolved
10.03.2020 12:32:31 Gast96907
NotSolved
10.03.2020 15:35:25 Gast73147
NotSolved
10.03.2020 17:21:39 Gast0815
NotSolved
10.03.2020 17:25:06 Gast01234
NotSolved
Blau Userform mit dynamischen Labeln - Funktion zuweisen
11.03.2020 19:40:39 xlKing
NotSolved
11.03.2020 20:03:32 Mase
NotSolved
17.03.2020 15:51:03 Sebastian
NotSolved
17.03.2020 20:00:10 Gast48180
***
NotSolved
17.03.2020 20:02:24 Gast9933
***
NotSolved
18.03.2020 19:25:32 xlKing
NotSolved
19.03.2020 13:32:29 Trägheit
NotSolved
19.03.2020 14:08:17 Mase
NotSolved
19.03.2020 19:55:09 Trägheit
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
11.03.2020 19:40:39
Views:
551
Rating: Antwort:
  Ja
Thema:
Userform mit dynamischen Labeln - Funktion zuweisen

Hallo Sebastian,

lass dich durch diese Beiträge nicht unterkriegen. Du hast sicher einen bestimmten Grund, warum du die Labels dynamisch erstellen willst. Wie Gast 73147 bereits schrieb solltest du dich dafür mit Klassenprogrammierung beschäftigen. Das ist aber nicht so schwer wie es zunächst den Anschein hat. 

Füge über Module einfügen ein Klassenmodul (z.B. Klasse1) ein. Dort definierst du eine Variable vom Typ des gewünschten Objekts mit WithEvents. Anschließend kannst du auf alle Ereignisse zugreifen, die dieses Objekt bietet. Der Code im Klassemodul kann z.B. so aussehen:

Public WithEvents lbl As MSForms.Label

Private Sub lbl_Click()
  MsgBox "Name: " & lbl.Name & " Caption: " & lbl.Caption
End Sub

Nun musst du noch deinen bestehenden Code mit dem Klassenmodul verknüpfen. Dazu musst du ihn nur um 3 Zeilen erweitern. Das sind die drei Zeilen die hier die Variable lbls enthalten:

Dim lbls As New Collection
Private Sub CommandButton1_Click()
Dim theLabel As Object
Dim labelCounter As Long
For labelCounter = 1 To 3
  Set theLabel = UserForm1.Controls.Add("Forms.Label.1", "Test" & labelCounter, True)
  With theLabel
    .Caption = "Test" & labelCounter
    .Left = 10
    .Width = 50
    .Top = 30 * labelCounter
  End With
  lbls.Add New Klasse1
  Set lbls(lbls.Count).lbl = theLabel
Next

End Sub

Die erste zeile legt eine neue Collection an. Die gehört in den Modulkopf also vor die erste Sub. Die zweite Zeile lbls.add fügt ein neues KLassenobjekt der Collection hinzu. In der dritten Zeile fügst du der Eigenschaft lbl dieses Klassenobjekts dann das eigentliche Lable hinzu auf das im Ereignishandler verwiesen werden soll.

Nochmal: Im Klassenmodul definierst du ein einheitliches Ereignis für alle drei Labels. Diese kannst du leicht über lbl.Name unterscheiden, falls es dann doch zu Diversitäten kommen soll. Ist wirklich nicht schwer, oder?

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
10.03.2020 12:31:32 Sebastian
NotSolved
10.03.2020 12:32:31 Gast96907
NotSolved
10.03.2020 15:35:25 Gast73147
NotSolved
10.03.2020 17:21:39 Gast0815
NotSolved
10.03.2020 17:25:06 Gast01234
NotSolved
Blau Userform mit dynamischen Labeln - Funktion zuweisen
11.03.2020 19:40:39 xlKing
NotSolved
11.03.2020 20:03:32 Mase
NotSolved
17.03.2020 15:51:03 Sebastian
NotSolved
17.03.2020 20:00:10 Gast48180
***
NotSolved
17.03.2020 20:02:24 Gast9933
***
NotSolved
18.03.2020 19:25:32 xlKing
NotSolved
19.03.2020 13:32:29 Trägheit
NotSolved
19.03.2020 14:08:17 Mase
NotSolved
19.03.2020 19:55:09 Trägheit
NotSolved