Caption von Labels in UserForm leeren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Label MultiPage
Bild

Betrifft: Caption von Labels in UserForm leeren
von: Tanja
Geschrieben am: 24.11.2015 09:55:55

Hallo,
ich habe eine Userform mit einer Multipage, in der ich bestimmte Labels für dynamisch erzeugte Hinweise verwende.
Der Name der betreffenden Labels beginnt immer mit "LblMessage" und danach einer Zahl, also z.B. LblMessage1, LblMessage2 usw.
Bisher verwende ich folgenden Code zum Löschen / Zurücksetzen dieser Labels.
Gibt es hier auch die Möglichkeit, das gleiche über einen Loop zu erreichen aber nur bezogen auf Labels mit diesem Namen ?
Mein Code:

Sub ClearLblMessage()
    With FrmToolbox
        .LblMessage1.Caption = ""
        .LblMessage2.Caption = ""
        .LblMessage3.Caption = ""
        .LblMessage4.Caption = ""
        .LblMessage5.Caption = ""
        .LblMessage6.Caption = ""
        .LblMessage7.Caption = ""
        .LblMessage8.Caption = ""
    End With
End Sub
Vielen Dank im Voraus.
LG,
Tanja

Bild

Betrifft: AW: Caption von Labels in UserForm leeren
von: Rudi Maintaire
Geschrieben am: 24.11.2015 09:59:28
Hallo,
per Schleife.

Sub ClearLblMessage()
    Dim i as integer
    With FrmToolbox
      for i= 1 to 8
        .Controls("LblMessage" &i).Caption = ""
      next i
    End With
End Sub
Gruß
Rudi

Bild

Betrifft: AW: Caption von Labels in UserForm leeren
von: Tanja
Geschrieben am: 24.11.2015 10:21:10
Hallo Rudi,
vielen Dank.
Die Lösung von Franz passt hier ein bisschen besser für mich, weil ich dort unabhängig von der Anzahl der Labels bin - trotzdem vielen Dank für die schnelle Hilfe !
LG,
Tanja

Bild

Betrifft: AW: Caption von Labels in UserForm leeren
von: fcs
Geschrieben am: 24.11.2015 10:16:03
Hallo Tanja,
z.B. so:

Sub ClearLblMessage()
    Dim objControl As Control
    With FrmToolbox
      For Each objControl In .Controls
        If TypeName(objControl) = "Label" Then
        If Left(LCase(objControl.Name), 10) = "lblmessage" Then
          objControl.Caption = ""
        End If
        End If
      Next
    End With
End Sub
Gruß
Franz

Bild

Betrifft: AW: Caption von Labels in UserForm leeren
von: Tanja
Geschrieben am: 24.11.2015 10:21:38
Hallo Franz,
das ist super so und funktioniert bestens - vielen Dank für die schnelle Hilfe !
LG,
Tanja

Bild

Betrifft: AW: Caption von Labels in UserForm leeren
von: Daniel
Geschrieben am: 24.11.2015 11:00:51
Hi
benenne die Labels so, dass die Namen mit gleichen Zeichenfolge beginnen und achte darauf, dass es keine anderen Steuerelemente gibt, deren Namen mit der selben Zeichenfolge beginnt:

dim crtl as Control
for each crtl in FrmToolbox.Controls
   if crtl.Name Like "LblMessage*" then crtl.Caption = ""
next
hat folgenede Vorteile:
- du musst diesen Code nicht anpassen, wenn du die Anzahl der Message-Labels änderst
- du musst die Labels nicht durchnummerieren, du kannst ihnen auch einen sprechenden Namen geben (zumindest ab dem gemeinsamen Beginn)
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Caption von Labels in UserForm leeren"