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

bedingete Formatierung einer Zeile mit VBA

bedingete Formatierung einer Zeile mit VBA
29.06.2018 11:26:28
Klaus
Hallo,
ich hoffe mir kann jemand helfen.
Ich habe eine Liste mit variabler Anzahl an Zeilen. Nach dem Erstellen der Liste (mittels eines Makros) möchte ich gerne die Zeilen (A:K) einfärben, bei denen die Bedingung =Istgerade(Zellwert Spalte E) erfüllt ist.
Die xls-Funktion habe ich schon ausprobiert, leider bringt er immer ein falsches Ergebnis da die Listenlänge variabel ist und immer wieder neu erzeugt wird.
Die gewünschte Farbe habe ich mit Rekorder aufgezeichnet, hier das Ergebnis:
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
Kann mir jemand sagen, wie das Makro aussehen muss?
Vielen Dank schon im voraus.
Gruß
Klaus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: faerben einer Zeile mit VBA
29.06.2018 11:51:55
hary
Moin
Zeig mal dein Listenmakro. Da hast du doch die Anzahl der Zeilen drin
Pruefen ob gerade:
Sub test()
Dim i As Long
For i = 1 To "hier Anzahl der eingetragenen Zeilen"
If Cells(i, 5) Mod 2 = 0 Then
With Cells(i, 1).Resize(i, 11).Interior
'--usw.
End With
End If
End Sub

gruss hary
AW: kleine Korrektur
29.06.2018 12:27:36
hary
Moin
Resize(i, 11) muss so sein Resize(1, 11)
gruss hary
AW: kleine Korrektur
29.06.2018 13:07:32
Klaus
Hallo Hary,
die letzte Zeile hol ich mir mit:
Dim letztezeile As Long
letztezeile = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Hab es jetzt so in mein Makro eingebaut
For i = 2 To letztezeile
If Cells(i, 5) Mod 2 = 0 Then
With Cells(i, 1).Resize(1, 11).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End If
Next
Er führt das gesamte Makro aus, färbt auch die Zeilen richtig ein, aber:
Leider springt xls dann immer in den debug-Modus: "If Cells(i, 5) Mod 2 = 0 Then" (das mag er nicht verstehen - "Typen unverträglich")
Weist du warum
Gruß
Klaus
Anzeige
AW: kleine Korrektur
29.06.2018 13:38:24
Klaus
Hi Hary,
ich weis jetzt warum, ich habe in der Spalte A Formeln stehen, d.h. er erkennt es nicht als letzte Zeile. Ich fange es mit einem "On Error" ab :-)
Hat sich also erledigt.
Danke für die Hilfe
Gruß
Klaus
…Was darauf hindeutet, dass diese letzte Zelle …
29.06.2018 13:44:15
Luc:-?
…einen nicht-numerischen Wert bzw keine echte Zahl enthält oder doch noch leer ist, Klaus;
auch "" als Ergebnis einer Fml ist ein (Leer-)Text, der die Zelle füllt.
Gruß, Luc :-?
AW: mit Pruefung
29.06.2018 13:53:15
hary
Moin
Dann enthaelt die Zelle Text. Auch ein Leerzeichen waere Text.
Hier mit Puefung ob der Zellinhalt eine Zahl ist.
For i = 2 To letztezeile
If IsNumeric(Cells(i, 5)) Then '--pruefen ob Zahl
If Cells(i, 5) Mod 2 = 0 Then
With Cells(i, 1).Resize(1, 11).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End If
End If
Next

gruss hary
Anzeige
AW: mit Pruefung
29.06.2018 15:21:53
Klaus
Hallo an beide,
vielen Dank, ist natürlich eleganter so, werde die Abfrage mit einbauen.
Danke
Gruß
Klaus

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige