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

Diverse Labels Caption "" und Labels Visible False setzen

Forumthread: Diverse Labels Caption "" und Labels Visible False setzen

Diverse Labels Caption "" und Labels Visible False setzen
06.07.2025 17:57:46
Dieter(Drummer)
Guten Tag an alle.

Mit diesem Code werden auf Userform diverse Label Caption = "" und Label Visibel = False gesetzt. Das klappt auch.

Kann der Code auch kürzer sein und wenn ja, wie?

Mit der Bitte um Hilfe, grüßt
Dieter(Drummer)

Sub Label_Leer()
Me.Label2.Caption = ""
Me.Label4.Caption = ""
Me.Label6.Caption = ""
Me.Label8.Caption = ""

Me.Label3.Visible = False
Me.Label5.Visible = False
Me.Label7.Visible = False
End Sub
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diverse Labels Caption "" und Labels Visible False setzen
06.07.2025 20:14:06
Daniel
Wenn du dir Objekte mit Nummern benennst, kannst du eine Schleife verwenden

For i = 2 to 8 step 2

Me.Controls("Label" & i).visible = false
Next


Gruß Daniel
AW: Diverse Labels Caption "" und Labels Visible False setzen
06.07.2025 20:51:23
Dieter(Drummer)
Danke Daniel und werde es auprobieren.

Mit der Vairiante von Ralf komme ich schon klar.

Dennoch Danke und Gruß,
Dieter(Drummer)
Anzeige
Kürzer?
06.07.2025 20:27:25
RPP63
Moin!
Viel kürzer wird das bei so wenigen Labels auch bei mir nicht.
Vielleicht "griffiger" so?
Dim i&

For i = 2 To 8
If i Mod 2 Then Controls("Label" & i).Visible = False Else Controls("Label" & i).Caption = ""
Next


Gruß Ralf
Anzeige
AW: Diverse Labels Caption "" und Labels Visible False setzen
07.07.2025 01:24:01
Daniel
Hi

Noch ne Methode, die zwar etwas Vorbereitung erfordert, aber nicht angepasst werden muss wenn Steuerelemente hinzukommen oder wegfallen.

Zur Vorbereitung:
Hänge an den Namen jedes Steuerements, das ausgeblendet werden soll ein "a" ("Label3a") und bei jedem, dessen Caption geleert werden soll ein "b" ("Label2b")

Der Code wäre dann

Dim C as Control

For each C in me.controls
If C.name like "*a" then C.visible = false
If C.name like "*b" then C.caption = ""
Next


Gruß Daniel
Anzeige
AW: Diverse Labels Caption "" und Labels Visible False setzen
08.07.2025 12:08:17
GerdL
Hallo Dieter,

ein weiteres Gedicht.

Me.Label2.Caption = ""


For Each i In Array(3, 5, 7)
Me.Controls("Label" & i).Visible = False
Me.Controls("Label" & (i + 1)).Caption = ""
Next


Womit wir fast wieder beim Code von Ralf sind. :-)

Gruß Gerd

Anzeige
AW: da fehlt aber dann das Label2
08.07.2025 13:10:15
JoWE
AW: da fehlt aber dann das Label2
08.07.2025 13:44:27
Dieter(Drummer)
Danke für Hinweis JoWe.

Gruß,
Dieter(Drummer)
AW: da fehlt aber dann das Label2 nicht
08.07.2025 15:16:18
GerdL
Me.Label2.Caption = ""


For Each i In Array(3, 5, 7)
Me.Controls("Label" & i).Visible = False
Me.Controls("Label" & (i + 1)).Caption = ""
Next
Anzeige
AW: Diverse Labels Caption "" und Labels Visible False setzen
08.07.2025 13:42:06
Dieter(Drummer)
Danke Gerd,

auch eine gute Variante.

Gruß,
Dieter(Drummer)
AW: Diverse Labels Caption "" und Labels Visible False setzen
07.07.2025 11:00:45
Dieter(Drummer)
Danke Daniel und sorry für späte Rückmeldung.

Das ist eine prima Idee, die ich umsetzen werde, auch für weitere Projekte.

Gruß,
Dieter(Drummer)
Noch ein Gedicht...
07.07.2025 20:35:18
Yal
Moin,

bin, wie immer, nicht besonders früh dran. Trotzdem noch eine Idee:

For Each i In Array(2, 4, 6, 8)

Me.Controls("Label" & i).Caption = ""
Next
For Each i In Array(3, 5, 7)
Me.Controls("Label" & i).Visible = False
Next
Ich hoffe, der Muster erkennbar...

VG
Yal
Anzeige
AW: Noch ein Gedicht...
08.07.2025 10:39:12
Dieter(Drummer)
Danke Yal,

auch eine gute, praktikable Idee, die auch funktioniert.

Gruß,
Dieter(Drummer)
AW: Kürzer?
06.07.2025 20:42:00
Dieter(Drummer)
Danke Ralf,

ist kürzer und klappt perfekt.

Gruß,
Dieter(Drummer)
AW: Kürzer?
06.07.2025 21:08:51
Luschi
Hallo Dieter,

trotz der Kürze sollte man die Steuerelemente sauber referenzieren:
If i Mod 2 Then Me.Controls("Label" & i).Visible = False Else Me.Controls("Label" & i).Caption = ""

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Kürzer?
06.07.2025 21:20:41
RPP63
Wobei das Parent in VBA ja per Default Me ist und somit redundant, Luschi!
Und klar: In anderen Sprachen ist das nicht "unsauber", sondern unzulässig.

Gruß Ralf
AW: Kürzer?
07.07.2025 10:57:39
Dieter(Drummer)
Danke Luschi und sorry für späte Rüückmeldung.

Ist natüröich ok, dass richtig mit "Me" referenziert sein sollte, Habd angespasst ...

Gruß,
Dieter(Drummer)
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18