Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Label-Objekt in einer Userform wiederfinden...

Forumthread: Label-Objekt in einer Userform wiederfinden...

Label-Objekt in einer Userform wiederfinden...
KLE
Hi,
ich habe ein Problem:
Ich habe eine komplexe Userform mit ca. 300 Elementen, darunter viele Frames und Objekte, welche auch übereinander liegen...Nun ist ein Objekt (ein Label-Element) irgendwie "verschwunden". Ich kann es zwar per Code ansprechen, aber ich kann Sie im VB-.Editor einfach nicht finden.
Gibt es im Editor bereich eine Möglichkeit ein Object direkt anzusteuern, bzw. es auszuwählen...?
Im Eigenschaften-Bereich, habe ich zwar eine Liste mit verschiedenen Elementen, aber da finde ich es auch nicht...
Gruß
Kay
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Label-Objekt in einer Userform wiederfinden...
23.10.2011 16:52:46
Reinhard
Hallo Kay,
da ist mir nichts bekannt, aber ich bin absolut nicht kompetent zu sagen da gibt's nix.
Was ich dir anbieten kann, ich habe Für eine Anfrage in einem anderen Forum Code gebastelt
der auflistet pro Element den Namen und die l,t,w,h Werte, also die Position innerhalb der UF.
(Naja bsteln, ich hab hier nachgefragt *gg*)
Würde dir das helfen?
Gruß
Reinhard
Anzeige
AW: Label-Objekt in einer Userform wiederfinden...
23.10.2011 17:01:17
Nepumuk
Hallo,
wenn du das Control über die Combobox oberhalb des Eigenschaftsfensters anwählst, wird es automatisch aktiviert. Setz im Eigenschaftsfenster die Top- und Left-Eigenschaft so dass das Control in den sichtbaren Beireich rutscht. Wenn dein Label auf einem andern Control (Frame / Multipage) liegt, musst du erst dieses Control aktivieren damit du im Eigenschaftsfenster an die darauf liegenden Controls kommst.
Gruß
Nepumuk
Anzeige
ohne Erfolg, kann man das Frame...
23.10.2011 19:41:12
KLE
Hi, habe ich versucht.
Mein Problem ist - das es ursprünglich mal auf Frame3 war (und es sollte da wohl auch noch sein, denn ich bin mir nicht bewusst es geändert zu haben). Habe auch schon wie Nepumuk beschrieben, dieses ausgewählt und dann im Eigenschaftenfenster versucht es zu finden - ohne Erfolg.
Über eine MSGbox-Anzeige, habe ich zwar erfahren, das die Position Top -6 und Left 30 ist, aber ich weiß noch nicht wo...
Daher eine Frage: Kann man irgendwie ermitteln, auf welchem Frame es sich befindet ? Habe da keinen Code bisher finden können?
Gruß und Danke
Kay
Anzeige
AW: ohne Erfolg, kann man das Frame...
23.10.2011 20:16:41
Nepumuk
Hallo,
versuch es mal so:

Public Sub test()
    Dim objParent As Control, objChild As Control
    For Each objParent In UserForm1.Controls
        If TypeOf objParent Is MSForms.Frame Or TypeOf objParent Is MSForms.MultiPage Then
            For Each objChild In objParent.Controls
                If objChild.Name = "Label1" Then MsgBox objParent.Name
            Next
        End If
    Next
End Sub

Das ist die "ganz einfache" Form. Wenn du Container-Controls (Frame / Multipage) in Container-Controls hast (z.B. Frame in Frame in Multipage und darauf die Controls oder so) dann müssen wir eine rekursive Suche benutzen.
Gruß
Nepumuk
Anzeige
AW: Danke, ...
23.10.2011 22:15:01
KLE
...habe es auf diese Weise wiedergefunden, in dem ich noch die Hight und Width - Infos abfragte.
Das Objekt war in einem Frame, gerutscht, was nur eine "Trennlinie" darstellt. (Höhe 1)...da es ja keine Linien etc. sonst gibt...
Vielen Dank und Gruß
Kay
;
Anzeige
Anzeige

Infobox / Tutorial

Label-Objekt in einer Userform wiederfinden


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Navigiere zur Userform: Wähle im Projekt-Explorer die Userform aus, in der das Label-Objekt sich befindet.
  3. Aktivieren des Controls: Nutze die Combobox im Eigenschaften-Bereich, um das Control auszuwählen. Wenn das Label sich in einem Frame oder Multipage befindet, musst du zuerst dieses Container-Control aktivieren.
  4. Position prüfen: Falls das Label nicht sichtbar ist, prüfe die Eigenschaften Top und Left im Eigenschaftenfenster und setze diese so, dass das Control in den sichtbaren Bereich rutscht.
  5. Code zur Identifikation verwenden: Wenn du das Label immer noch nicht findest, nutze den folgenden VBA-Code, um das übergeordnete Frame zu ermitteln:

    Public Sub test()
       Dim objParent As Control, objChild As Control
       For Each objParent In UserForm1.Controls
           If TypeOf objParent Is MSForms.Frame Or TypeOf objParent Is MSForms.MultiPage Then
               For Each objChild In objParent.Controls
                   If objChild.Name = "Label1" Then MsgBox objParent.Name
               Next
           End If
       Next
    End Sub

Häufige Fehler und Lösungen

  • Label nicht sichtbar: Überprüfe die Top- und Left-Eigenschaften des Labels. Setze sie so, dass das Label in den sichtbaren Bereich rutscht.

  • Label in einem anderen Container: Wenn das Label in einem Frame oder Multipage ist, musst du sicherstellen, dass du das übergeordnete Control aktiviert hast, um auf die darunter liegenden Controls zugreifen zu können.

  • Label-Namen nicht gefunden: Stelle sicher, dass der Name des Labels korrekt ist. Du kannst den Namen auch über eine MsgBox abfragen, um sicherzustellen, dass du den richtigen Namen verwendest.


Alternative Methoden

  • Verwendung von Debugging: Setze Breakpoints im Code und nutze das Immediate Fenster (STRG + G), um die Namen der Controls auszugeben und das Label zu finden.

  • Objektliste generieren: Erstelle eine Liste aller Controls in der Userform, um eine Übersicht zu erhalten. Dies kann mit einer einfachen Schleife im VBA erfolgen.


Praktische Beispiele

Wenn du das Label-Objekt in einer komplexen Userform mit vielen Elementen suchst, kann die folgende Methode hilfreich sein:

Public Sub ListControls()
    Dim ctrl As Control
    For Each ctrl In UserForm1.Controls
        Debug.Print ctrl.Name & " - Type: " & TypeName(ctrl)
    Next ctrl
End Sub

Dieser Code gibt eine Liste aller Controls in der Userform im Direktfenster aus, was dir helfen kann, den Namen des gesuchten Labels zu finden.


Tipps für Profis

  • Organisiere deine Userforms: Verwende sinnvolle Namen für deine Controls, um das Auffinden zu erleichtern.

  • Dokumentation: Halte eine Dokumentation oder einen Kommentar im Code bereit, um die Struktur deiner Userforms klar zu definieren.

  • Regelmäßige Sicherung: Mache regelmäßig Sicherungen deiner Userforms, um Änderungen nachverfolgen zu können.


FAQ: Häufige Fragen

1. Wie finde ich den Namen eines Labels?
Du kannst den Namen eines Labels über das Eigenschaftenfenster im VBA-Editor oder durch das Debugging im Code herausfinden.

2. Was mache ich, wenn das Label nicht sichtbar ist?
Überprüfe die Position des Labels (Top und Left) und stelle sicher, dass es nicht in einem Container-Control versteckt ist. Setze die Position so, dass es sichtbar wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige