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

Label auf Formular als Variable. Wie?

Label auf Formular als Variable. Wie?
16.04.2009 11:16:50
Wissensdurst
Guten Morgen liebe Excel-Gemeinde!
Ich hätte mal wieder eine kleine Frage. Ich habe ein Formular mit X Labeln, die automatisch gefüllt werden sollen. Am Ende der Label steht immer eine Zahl (Label1, Label2, Label3 etc.). Jetzt möchte ich nicht jedes Label einzeln ansprechen, sondern dies automatisch in einer Schleife tun. Aber irgendwie komm ich mit der Syntax nicht klar.
Im Normalfall würde ich schreiben: Label1.Caption, Label2.Caption, ... Aber wie muss das als Variable aussehen, oder geht das eventuell überhaupt nicht? Also, ich meine so nach dem Motto:
("Label" & i).Caption
Hab schon alles mögliche probiert, aber ich komm damit einfach nicht klar. Besten Dank im Voraus!
Viele Grüße
Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Label auf Formular als Variable. Wie?
16.04.2009 11:26:21
Oberschlumpf
Hi Christian
Versuch mal (gilt für Labels in Userform (du hast leider nicht verraten, ob Label in UF oder in Tabelle))

Sub test()
Dim lctrLabel As Control
For Each lctrLabel In userform1.Controls
If TypeName(lctrLabel) = "Label" Then
lctrLabel.Caption = "Deine Bezeichnung"
End If
Next
End Sub


Dieser Code durchläuft alle Controls in einem Userform, und reagiert mit IF nur dann, wenn Control = Label.
Allerdings besteht in diesem Fall der Nachteil, dass jedes Label die gleiche Bezeichnung bekommt (oder soll das so sein?).
Wenn nicht, dann so:


Sub test()
Dim lctrLabel As Control
For Each lctrLabel In userform1.Controls
If TypeName(lctrLabel) = "Label" Then
Select Case lctrLabel.Name
Case "Label1"
lctrLabel.Caption = "Bez. für Label1"
Case "Label2"
lctrLabel.Caption = "Bez. für Label2"
'...usw
End Select
End If
Next
End Sub


Aber Select Case is auch nix anderes, als wenn du gleich schreibst:
Label1.Caption = "text1"
Label2.Caption = "text2"
usw...
Hilft denn etwas hiervon?
Ciao
Thorsten

Anzeige
AW: Label auf Formular als Variable. Wie?
16.04.2009 11:56:58
Wissensdurst
Hallo Thorsten,
hab das in meinem Projekt leider so noch nicht zum Laufen gebracht, aber ich hab es mal in einer neuen Datei getestet und das ist genau das was ich suche. Jetzt muss ich nur noch rausfinden, warum es in der einen Datei geht und in der anderen nicht ;) Auf jeden Fall schon mal vielen Dank!
Beste Grüße
Christian
P.S.: Ja, es war ein Userform ;)
AW: Label auf Formular als Variable. Wie?
16.04.2009 14:47:05
Wissensdurst
Jetzt bin ichs nochmal. Es hat sich ein weiteres Problem ergeben: Ich möchte eine auf gleiche Weise abfragen, ob eine Checkbox angewählt ist, aber auch da hab ich ein Syntaxproblem.
Mein laienhafter Versuch:
Dim FrageNr As Integer
Dim ctrA As Control
For FrageNr = 1 To 10
For Each ctrA In frmFragebogen.Controls
If ctrA.Name = "Checkbox" & FrageNr And ctrA.Value = True Then Antwort = FrageNr & "A"
Next
...
Das klappt aber nicht, weil ".Value" von dem Objekt nicht unterstützt wird. Aber wie könnte es sonst gehen? Schon mal besten Dank!
Viele Grüße
Christian
Anzeige
AW: Label auf Formular als Variable. Wie?
16.04.2009 17:36:11
Oberschlumpf
Hi Christian
Versuch mal so
For FrageNr = 1 To 10
For Each ctrA In frmFragebogen.Controls
If TypeName(ctrA) = "Checkbox" Then
If ctrA.Name = "Checkbox" & FrageNr And ctrA.Value = True Then Antwort = FrageNr & "A"
'Exit Sub
Next
Next
Zuerst musst du den Control-Typ ermitteln - deswegen zuerst If Typename(...
Dann kannst du nach FrageNr und Value "fragen".
Das Exit Sub hab ich (noch) auskommentiert mit eingebaut, weil...
...mit Exit Sub erhält Antwort = den ersten Treffer deiner Checkboxen
...ohne Exit Sub erhält Antwort = den letzten Treffer deiner Checkboxen
Wenn du wirklich den letzten Treffer wolltest, kannst du Exit Sub ja wieder löschen.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Label auf Formular als Variable. Wie?
17.04.2009 02:58:49
Wissensdurst
Vielen Dank Thorsten!
Ich kann den Code leider erst am Montag ausprobieren, aber ich bin guter Dinge, dass auch dieser funktionieren wird. Ich hatte die Ermittlung des Control-Typs weggelassen, weil es beim ursprünglichen Beispiel mit den Labeln auch ohne funktioniert hat ;) Aber in diesem Fall scheint es wohl wirklich essenziell zu sein...
Also wie gesagt, besten Dank und ein schönes Wochenende
Christian

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige