Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

Code für mehrere Labels

Code für mehrere Labels
03.09.2008 06:48:06
otto
Guten Morgen,
ich habe eine UF mit 180 Labels. Bei Klick auf diese Labels soll immer das gleiche Makro namens "suchen" ausgeührt werden.
Wie kann ich das zusammenfassen, dass ich nicht 180x den code reinschreiben muss?
Der Suchbegriff muss das Caption des jeweilig angeklickten Labels sein.
so ähnlich wie:
Dim c As Control, suchbegriff
For Each c In Me.Controls
If TypeName(c) = "Label" Then
suchen
suchbegriff = ActiveControl.Caption
End If
Next c
Danke im Voraus
Gruß
otto

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code für mehrere Labels
03.09.2008 09:05:00
Chris
Servus Otto,
ich denke mal du wirst nicht drum rum kommen ,180x ein Label_Click-Ereignis einzurichten in der Art:

Private Sub Label1_Click()
Call suchen
End Sub


Ich wüsste jedenfalls keine andere Lösung.
Gruß
Chris

AW: Code für mehrere Labels
03.09.2008 09:13:00
Beverly
Hi Otto,
das kannst du mit Klassenprogramierung machen. Auf der HP von Hajo Ziplies, Seite "VBA Beispiele", Unterseite "UserForm" findest du dazu ein Beispiel
Link zur Datei


Anzeige
AW: Code für mehrere Labels
03.09.2008 09:34:00
otto
Hi,
danke, aber so gut bin ich nun auch wieder nicht. Wüsste nicht, wie ich das für mich nutzen könnte.
Vielleicht hast du noch ne Idee?
Gruß
otto
AW: Code für mehrere Labels
03.09.2008 10:18:24
Beverly
Hi Otto,
ich bin von deiner Selbsteinschätzung "VBA gut" ausgegangen und für dieses Level wäre das Beispiel durchaus geeignet gewesen.
Erstelle ein Klassenmodul clsLabel und trage dort diesen Code ein:

Option Explicit
Public WithEvents clLabel As MSForms.Label
Private Sub clLabel_Click()
suchen
End Sub


Ins Codemodul des UserForms schreibst du diesen Code:


Option Explicit
Dim coElement As Control
Private Sub UserForm_Initialize()
Dim inZaehler As Integer
For Each coElement In Me.Controls
If TypeName(coElement) = "Label" Then
ReDim Preserve clsLabels(0 To inZaehler)
Set clsLabels(inZaehler).clLabel = coElement
inZaehler = inZaehler + 1
End If
Next coElement
End Sub


Und in ein allgemeines Modul:


Option Explicit
Public clsLabels() As New clsLabel




Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige