Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1088to1092
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
Inhaltsverzeichnis

Bei Klick auf UserForm-Label dynamisch Label-Namen

Bei Klick auf UserForm-Label dynamisch Label-Namen
Martin
Hallo,
ich habe eine UserForm, auf der sich mehrere Labels befinden. Beim Klick auf die Labels, wird immer die selbe Function aufgerufen. Gibt es eine Möglichkeit über die Function den Namen des jeweiligen Labels zu ermitteln, über welches die Function ausgelöst wurde?
Ich habe es mit folgendem Code probiert, aber so geht es nicht:
Private Sub Label1_Click()
Bearbeitung (486)
End Sub
Function Bearbeitung(Wert As Integer)
MsgBox ActiveControl.Name
End Function Viele Grüße
Martin
AW: Bei Klick auf UserForm-Label dynamisch Label-Namen
24.07.2009 11:31:10
Tino
Hallo,
z. Bsp. so.
Sind es sehr viele, würde sich auch eine Klassen Programmierung eignen.
Dialog UserForm1
Option Explicit 
Private Function Bearbeitung(objLabel As MSForms.Label) 
 MsgBox objLabel.Name 
End Function 
 
Private Sub Label1_Click() 
 Bearbeitung Label1 
End Sub 
 
Private Sub Label2_Click() 
 Bearbeitung Label2 
End Sub 
 
Private Sub Label3_Click() 
 Bearbeitung Label3 
End Sub 
 
Gruß Tino
Anzeige
AW: Bei Klick auf UserForm-Label dynamisch Label-Namen
24.07.2009 12:08:48
Martin
Hallo Tino,
vielen Dank. Also muss der Name per Code an die Function übertragen werden. Ich hatte gehofft, dass das nicht notwendig sei und der Label-Name direkt in der Function über ewtas wie "me.name" oder "activecontrol.name" ermittelt werden könnte. Vielen Dank nochmals.
Viele Grüße
Martin
kommt noch in die Userform
24.07.2009 12:50:13
Tino
Hallo,
diese Codezeilen fehlen noch in der Userform,
damit der Speicher wieder freigegeben wird beim beenden der Form.
Private Sub UserForm_Terminate()
Erase ConLabel
End Sub
Gruß Tino
Anzeige
SUPER! Vielen DANK!!!
24.07.2009 13:07:14
Martin
Hallo Tino,
super, vielen Dank. Klappt perfekt!
Viele Grüße
Martin
AW: kommt noch in die Userform
24.07.2009 13:41:39
Luschi
Halle Tino,
das kann nicht sein, da 'ConLabel' kein Array ist - bei mir kommt da eine Fehlermeldung.
Gruß von Luschi
aus klein-Paris
AW: kommt noch in die Userform
24.07.2009 13:56:14
Tino
Hallo,
Doch ist im in einem normalen Modul als Public.
Schreibe vom pocket bin auf der Arbeit.
Gruß Tino
AW: kommt noch in die Userform
24.07.2009 14:01:48
Tino
Hallo,
Kann man sich in die Userform schreiben.
Gruß Tino
AW: kommt noch in die Userform
24.07.2009 14:33:08
Luschi
Hallo Tino,
wenn ich den folgenden Workshop: http://www.vbarchiv.net/workshop/workshop_39.html
richtig verstehe, dann sollte man die Verknüpfung 'eigenes Klassenmodul - Userform' über eine Collection steuern und niocht mit dem Klassen.Objekt selbst.
Hier Dein Beispiel dazu:
https://www.herber.de/bbs/user/63412.xls
Gruß von Luschi
aus klein-Paris
Anzeige
hatte noch nie Probleme oT.
24.07.2009 15:12:47
Tino
AW: kommt noch in die Userform
24.07.2009 23:22:45
Tino
Hallo,
wie schon geschrieben, die Deklarierung muss nicht als Public in einem Modul stattfinden.
Man kann es auch in der Userform machen und wem es gefällt diese beim beenden zurücksetzen.
Sehe jetzt auch keinen direkten Nachteil dies in einem Array zu machen.
Dialog UserForm1
Option Explicit 
Dim ConLabel() As New Klasse1 
 
Private Sub UserForm_Initialize() 
Dim i As Integer, ii As Integer 
 
For i = 0 To Me.Controls.Count - 1 
 If TypeName(Controls(i)) = "Label" Then 
  Redim Preserve ConLabel(ii) 'neu Dimensionieren der Array 
  Set ConLabel(ii).objLabel = Controls(i) 
  ii = ii + 1 
 End If 
Next i 
 
End Sub 
 
Private Sub UserForm_Terminate() 
'ist nicht notwendig, weil beim schließen die Arrea sowieso zurückgesetzt wird 
'was solls, der Form halber machen wir es mit rein 
 Erase ConLabel 
  
End Sub 
Klassenmodul Klasse1
Option Explicit 
 
Public WithEvents objLabel As MSForms.Label 
 
Private Sub objLabel_Click() 
 MsgBox objLabel.Name & ", " & objLabel.Caption 
End Sub 
Gruß Tino
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige