Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu Label_Click Ereignis in UserForm!?!

Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 11:22:50
Oliver
Hallo an alle,
ich hab da mal ein Frage. Ich erzeuge mit nachfolgendem Makro in einer UserForm 2 Labelfelder (Label 5 und 6) und formatiere die noch ein wenig. Nun habe ich in der UserForm ein Label_Click Ereignis eingetragen, welches bei Klick auf das neu erzeugte Labelfeld Label6 eine Aktion durchführen soll. Leider funktioniert das nicht. Ich gehe mal davon aus, dass es daran liegt, dass es ja eigentlich in der UserForm kein Labelfeld Label6 gibt. Weiß jemand wie ich es dennoch anstellen kann, dass bei Klick auf das neu erzeugte Feld eine Aktion ausgeführt wird.
Hier erst mal das Makro, dass die beiden Label’s erzeugt

Sub Makro_x()
Dim neuLabel_1 As Control, neuLabel_2 As Control
With Info_2
.Height = 463.5
.Width = 235.5
'Position
.Left = 0
.Top = 0
End With
With Info_2.Controls("CommandButton1")
'Position
.Left = 66
.Top = 396
End With
Set neuLabel_1 = Info_2.Controls.Add("Forms.Label.1")
With Info_2.Controls("Label5")
.Height = 30:
.Width = 168
'Position
.Left = 30
.Top = 348
.Visible = True
.Caption = "Testtext"
.TextAlign = 2
End With
Info_2.Controls("Label5").Font.Name = "Arial"
Info_2.Controls("Label5").Font.Charset = 2
Set neuLabel_2 = Info_2.Controls.Add("Forms.Label.1")
With Info_2.Controls("Label6")
.Height = 12:
.Width = 168
'Position
.Left = 30
.Top = 378
.Visible = True
.Caption = "Testtext"
.ForeColor = &HFF0000
.TextAlign = 2
End With
Info_2.Controls("Label6").Font.Name = "Arial"
Info_2.Controls("Label6").Font.Charset = 2
Info_2.Controls("Label6").Font.Underline = True
End Sub

Ich hoffe, Ihr habt mich einigermaßen verstanden und hoffe, dass jemand eine Antwort, bzw. eine Lösung hat.
Danke Euch schon mal,
Oliver

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 12:07:19
Gert
Hi,
zur Laufzeit erzeugte controls können nur mithilfe eines Klassenmoduls Ereignisse
auslösen. Beispiele in der Recherche.
mfg Gert
AW: Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 12:56:04
Oliver
Hi Gert,
danke Dir für Deine Antwort. Ich habe mich mal in der Recherche umgesehen und versucht anhand eines Beispiels ( https://www.herber.de/index.html?https://www.herber.de/mailing/150801h.htm ) von Herber das zu realisieren. Leider habe ich dabei kein Erfolg. ich muss allerdings dazu sagen, dass ich mit den Klassenmodulen nocht nie etwas zu tun gehabt habe, ich bin bis jetzt immer ohne ausgekommen. Nachfolgend noch maL der geänderte Code und das Klassenmodul
Sub Makro_x()
Dim neuLabel_1 As Control, neuLabel_2 As Control, oNew As clsBtn
With Info_2
.Height = 463.5
.Width = 235.5
'Position
.Left = 0
.Top = 0
End With
With Info_2.Controls("CommandButton1")
'Position
.Left = 66
.Top = 396
End With
Set neuLabel_1 = Info_2.Controls.Add("Forms.Label.1")
With neuLabel_1 'Info_2.Controls("Label5")
.Height = 30:
.Width = 168
'Position
.Left = 30
.Top = 348
.Visible = True
.Caption = " testtext "
.TextAlign = 2
.Font.Name = "Arial"
.Font.Charset = 2
End With
Set oNew = New clsBtn
Set oNew.neuLabel_2 = Info_2.Controls.Add("Forms.Label.1")
With oNew.neuLabel_2 'Info_2.Controls("Label6")
.Height = 12:
.Width = 168
'Position
.Left = 30
.Top = 378
.Visible = True
.Caption = "testtext"
.ForeColor = &HFF0000
.TextAlign = 2
.Font.Name = "Arial"
.Font.Charset = 2
.Font.Underline = True
End With
oEvents.Add oNew
End Sub

Der Code aus dem Klassenmodul:
Public WithEvents neuLabel_2 As MSForms.Label

Private Sub neuLabel_2_Click()
MsgBox "Hallo"
End Sub

Wie schon geschrieben, es funktioniert nicht. Es kommt der Laufzeitfehler 424, mit dem Text Objekt erforderlich und bei Klick auf Debbug, wird mir die Anweisung zum Aufrufen der UserForm gelb markiert.
Ich habe wirklich, aus oben genannten Grund (noch nie etwas mit Klassenmodulen gemacht) keine Ahnung, was da jetzt fehlt, bzw. falsch ist.
Kann mir da jemand eventuell helfend unter die Arme greifen? Wäre super.
Danke noch mal Gert und Gruß,
Oliver
Anzeige
AW: Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 13:05:25
Gert
Hi,
hast du das Klassenmodul umbenannt in clsBtn ?
Das ist bei Klassenmodulen erforderlich.
mfg Gert
AW: Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 13:44:31
Oliver
Hallo Gert,
danke, das Du noch einmal geantwortet hast. Ja, ich hatte das Klassenmodul in clsBtn umbenannt. Sorry, hatte ich vergessen zu erwähnen.
Gruß,
Oliver
AW: Frage zu Label_Click Ereignis in UserForm!?!
19.05.2005 15:37:09
Dani
Hallo Oliver,
ich habe das auch mal getestet. Bei mir funktionierts! Ich habe zwei Klassenmodule eingefügt:
clsBtn1:
Option Explicit
Public WithEvents neuLabel_1 As MSForms.Label

Private Sub neuLabel_1_Click()
MsgBox "Label1 gedrückt"
End Sub

und clsBtn2:
Option Explicit
Public WithEvents neuLabel_2 As MSForms.Label

Private Sub neuLabel_2_Click()
MsgBox "Label2 gedrückt"
End Sub

Der Code unter Tabelle1 sieht bei mir so aus:
Option Explicit
Sub Makro_x()
Dim neuLabel_1 As Control, neuLabel_2 As Control, oNew1 As clsBtn1, oNew2 As clsBtn2
With Info_2
.Height = 463.5
.Width = 235.5
'Position
.Left = 0
.Top = 0
End With
With Info_2.Controls("CommandButton1")
'Position
.Left = 66
.Top = 396
End With
Set oNew1 = New clsBtn1
Set oNew1.neuLabel_1 = Info_2.Controls.Add("Forms.Label.1")
With oNew1.neuLabel_1 'Info_2.Controls("Label5")
.Height = 30
.Width = 168
'Position
.Left = 30
.Top = 348
.Visible = True
.Caption = " testtext 1"
.TextAlign = 2
.Font.Name = "Arial"
.Font.Charset = 2
End With
Set oNew2 = New clsBtn2
Set oNew2.neuLabel_2 = Info_2.Controls.Add("Forms.Label.1")
With oNew2.neuLabel_2 'Info_2.Controls("Label6")
.Height = 12:
.Width = 168
'Position
.Left = 30
.Top = 378
.Visible = True
.Caption = "testtext 2"
.ForeColor = &HFF0000
.TextAlign = 2
.Font.Name = "Arial"
.Font.Charset = 2
.Font.Underline = True
End With
'oEvents.Add oNew
Info_2.Show
End Sub
Funktioniert das auch bei dir - wenn nicht was bekommst du für Meldungen?
Gruss
Dani
Anzeige
Super, jetzt funktionierts, danke!
19.05.2005 17:08:28
Oliver
Hallo an alle!
Es funktioniert jetzt. Den entscheidenden Tip hat mir Dani mit der letzten Zeile (Info_2.Show)in dem Makro gegeben. Ich hatte dieses Makro bein Initialisieren der UserForm aufgerufen und die UserForm mit einer Schaltfläche und der Anweisung Info_2.Show geöffnet. Das war scheinbar der Fehler. Denn als ich in mein altes gepostetes Makro die Zeile zum Öffnen der UserForm integriert hatte, funktionierte es. Danke Euch allen für die tatkräftige Unterstützung.
Schönen Abned noch,
oliver

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige