Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Label in Userform hinzufügen

Label in Userform hinzufügen
25.12.2005 21:57:05
Juergen
Hallo Leute!
Ich füge ein Label innerhalb von VBA in ein Userform hinzu... mit folgender Zeile
Me.Controls.Add("Forms.Label.1", , True)
Mein Problem... es erscheint zwar im Userform... aber sobald ich en Frame (mit Hintergrundbild) einfüge verschwindet das neue Label hinter diesem Frame.
Wie bekomme ich das Label in bzw. auf das Frame ?
Danke!!
Gruß Jürgen
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Label in Userform hinzufügen
25.12.2005 22:10:58
Ramses
Hallo
Ich glaube nicht dass das so funktioniert.
Probiers mal so
Option Explicit

Private Sub CommandButton1_Click()
    Dim myCtrl As Control
    Set myCtrl = Me.Frame1.Controls.Add("Forms.Label.1", "test", True)
    With myCtrl
        .Caption = "Kuckuck"
    End With
End Sub


Gruss Rainer
Anzeige
AW: Label in Userform hinzufügen
25.12.2005 22:13:04
Juergen
Hallo Rainer.
Klasse!! DANKE!!
Gruß Jürgen
AW: Label in Userform hinzufügen
25.12.2005 22:14:06
Josef
Hallo Jürgen!
Das geht zB. so!
Private Sub CommandButton1_Click()
Dim cFrame As MSForms.Frame
Dim cLabel As MSForms.Label


Set cFrame = Me.Controls.Add("Forms.Frame.1", "newFrame")

With cFrame
  .Top = 10
  .Left = 10
  .Width = 200
  .Height = 100
End With

Set cLabel = cFrame.Controls.Add("Forms.Label.1", "newLabel")

With cLabel
  .Top = 10
  .Left = 10
  .Caption = "Ich bin neu!"
End With

Set cFrame = Nothing
Set cLabel = Nothing

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Label in Userform hinzufügen


Schritt-für-Schritt-Anleitung

Um ein Label in ein Userform in Excel VBA hinzuzufügen, kannst du den folgenden Schritten folgen:

  1. Öffne den VBA-Editor (Alt + F11) in Excel.
  2. Erstelle ein neues Userform über das Menü "Einfügen" > "UserForm".
  3. Füge einen CommandButton hinzu, um den Code auszuführen.
  4. Doppelklicke auf den CommandButton, um das Codefenster zu öffnen.
  5. Verwende den folgenden VBA-Code:
Private Sub CommandButton1_Click()
    Dim myLabel As MSForms.Label
    Set myLabel = Me.Controls.Add("Forms.Label.1", "Label1", True)
    With myLabel
        .Top = 10
        .Left = 10
        .Caption = "Mein erstes Label"
    End With
End Sub

In diesem Beispiel wird ein Label mit der Bezeichnung „Mein erstes Label“ hinzugefügt. Du kannst die Position und den Text nach Belieben anpassen.


Häufige Fehler und Lösungen

  • Label erscheint nicht im Frame: Wenn das Label hinter einem Frame verschwindet, stelle sicher, dass du das Label direkt zum Frame hinzufügst. Beispiel:
Set myLabel = Me.Frame1.Controls.Add("Forms.Label.1", "Label1", True)
  • Fehlermeldung über "Controls.Add": Überprüfe, ob du die richtigen Referenzen in deinem VBA-Projekt hast. Manchmal kann es auch helfen, den Typ des Steuerelements explizit zu definieren.

Alternative Methoden

Eine alternative Methode, um Labels zu Userforms hinzuzufügen, ist die Verwendung von UserForm_Initialize. Diese Methode wird automatisch aufgerufen, wenn das Userform geladen wird:

Private Sub UserForm_Initialize()
    Dim myLabel As MSForms.Label
    Set myLabel = Me.Controls.Add("Forms.Label.1", "Label1", True)
    With myLabel
        .Top = 20
        .Left = 30
        .Caption = "Label im Initialisierungsprozess"
    End With
End Sub

Praktische Beispiele

Hier sind ein paar praktische Beispiele, wie man Labels in Userforms nutzen kann:

  1. Label innerhalb eines Frames hinzufügen:
Private Sub CommandButton1_Click()
    Dim cFrame As MSForms.Frame
    Dim cLabel As MSForms.Label

    Set cFrame = Me.Controls.Add("Forms.Frame.1", "newFrame")
    With cFrame
        .Top = 10
        .Left = 10
        .Width = 200
        .Height = 100
    End With

    Set cLabel = cFrame.Controls.Add("Forms.Label.1", "LabelInFrame")
    With cLabel
        .Top = 10
        .Left = 10
        .Caption = "Label im Frame"
    End With
End Sub
  1. Dynamisches Hinzufügen mehrerer Labels:
Private Sub CommandButton2_Click()
    Dim i As Integer
    For i = 1 To 5
        Dim myLabel As MSForms.Label
        Set myLabel = Me.Controls.Add("Forms.Label.1", "Label" & i)
        With myLabel
            .Top = i * 20
            .Left = 10
            .Caption = "Label " & i
        End With
    Next i
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden.
  • Experimentiere mit den Eigenschaften der Labels, wie Font, Color und Visible, um die Benutzeroberfläche ansprechender zu gestalten.
  • Achte darauf, die Labels konsistent zu benennen, um späteren Code einfacher zu gestalten und die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich ein Label nachträglich ändern?
Du kannst die Caption und andere Eigenschaften eines bestehenden Labels einfach im Code ändern. Beispiel:

Me.Label1.Caption = "Neuer Text"

2. Was tun, wenn das Label nicht angezeigt wird?
Überprüfe die Z-Ordnung der Steuerelemente. Ein Label, das hinter einem anderen Steuerelement liegt, wird möglicherweise nicht angezeigt. Stelle sicher, dass es im richtigen Container (wie einem Frame) hinzugefügt wurde.

3. Kann ich Labels in einer Schleife hinzufügen?
Ja, du kannst Labels in einer Schleife generieren, um mehrere Labels dynamisch zu erstellen. Überprüfe dazu das Beispiel im Abschnitt „Praktische Beispiele“.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige