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

Schleife durch Labels und CBs

Schleife durch Labels und CBs
12.01.2023 07:09:00
Chris
Hallo Forum,
ich möchte die Hintergrundfarbe von mehreren Labels per Schleife ändern:
1. Der Wert im Sheet Test ab A1 soll mit dem Caption der Commandbutton22 verglichen werden.
2. Wenn eine Übereinstimmung festgestellt wird, soll sich die Farbe des Label143 ändern.
3. Jetzt soll der Wert in A2 mit dem Caption der Commandbutton23 verglichen werden.
4. Wenn eine Übereinstimmung festgestellt wird, soll sich die Farbe des Label144 ändern.
usw.
HIer das Makro, was leider nicht läuft. Wie liegt der Fehler? Chris

Private Sub UserForm_Click()
Dim lnglast, i, CBindex, COLlab As Long
lnglast = Sheets("Test").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lnglast
For CBindex = 22 To 25
For COLlab = 143 To 146
If UserForm2.Controls("CommandButton" & CBindex).Caption = Sheets("Test").Cells(i, 1).Value Then
UserForm2.Controls("Label" & COLlab).BackColor = vbRed
End If
Next
Next
Next
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife durch Labels und CBs
12.01.2023 07:45:52
Luschi
Hallo Chris,
die Zelle 'A1' wird nie abgeprüft, denn Sheets("Test").Cells(i, 1) mit i = 2 als Anfangswert der For-Schleife ergibt Zelle 'A2' und 'A1' hängt in der Luft.
Die 2 innere For-Schleifen sind überflüssig, denn es besteht ja wohl ein direkter Zusammenhang zwischen den der Laufvariablen i und den Nummern der CB's und Labels:
i = 1 --» CB(22+1) und Label(142+1)
i = 2 --» CB(22+2) und Label(142+2) usw. Deshalb sieht mein Code so aus:

Private Sub UserForm_Click()
Dim lnglast As Long, i As Long
lnglast = Sheets("Test").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lnglast
If UserForm2.Controls("CommandButton" & (22 + i)).Caption = _
Sheets("Test").Cells(i, 1).Value Then
UserForm2.Controls("Label" & (143 + iCOLlab)).BackColor = vbRed
End If
Next
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Schleife durch Labels und CBs
12.01.2023 08:40:02
Chris
Hi,
danke für deine Rückmeldung. Das Makro tut es noch nicht. Ich habe deshalb eine Beispielmappe hochgeladen.
Immer wenn Caption von einem Button in der Liste des Sheets "Test" vorkommt, soll das jeweilige Label143 (ff) rot werden.
Ich hoffe meine Ausführungen sind genau genug :-)
https://www.herber.de/bbs/user/157224.xlsm
AW: Schleife durch Labels und CBs
12.01.2023 09:01:15
Chris
noch offen
AW: Schleife durch Labels und CBs
12.01.2023 13:42:56
Luschi
Hallo Chris,
jetzt sieht der Code so aus:

Private Sub UserForm_Click()
Dim lnglast As Long, i As Long
lnglast = Sheets("test").Cells(Rows.Count, 1).End(xlUp).Row
'ab Zelle 'A2'
For i = 2 To lnglast
'die Beschriftung der CBs ist Text und muß in Zahl umgewandelt werden
'21+2 (i) -1 --» 23 usw.
If CInt(UserForm2.Controls("CommandButton" & (21 + i - 1)).Caption) = _
Sheets("test").Cells(i, 1).Value Then
'142+2 (i)-1 --» 143 usw.
UserForm2.Controls("Label" & (142 + i) - 1).BackColor = vbRed
End If
Next
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige