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

Zeilen nach Bedingung Farbig

Forumthread: Zeilen nach Bedingung Farbig

Zeilen nach Bedingung Farbig
04.08.2021 15:36:49
Dom
Hallo Zusammen,
ich habe eine Tabelle mit 9 Spalten:
Pro | Name | ID | App | DOC | CR | Version | VF | GNC
es soll, wenn in der Spalte G (Version) der Wert 1.0 steht, die Spalte F (CR) sowie Spalte G (Version) für alle Zeilen der Inhalt mit grüner Textfarbe geändert werden.
also wenn in Spalte G der Wert 1.0 steht dann ändere die Schriftfarbe, der Werte in den Zeilen, für Spalte G und F auf grün.
vielen Dank im Voraus
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen nach Bedingung Farbig
04.08.2021 15:43:53
SF
Hola,
als Formel in der bedingten Formatierung:
=$G2="1.0"
Gruß,
steve1da
Anzeige
AW: Zeilen nach Bedingung Farbig
04.08.2021 16:07:54
Dom
Danke für den Link
ich hab das Mal versucht zu schreiben nur es klappt leider nicht :(

Sub Version()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheet1
lngZeileMax = .Range("G" & .Rows.Count).End(xlUp).Row
For lngZeile = 4 To lngZeileMax
If .Range("G" & lngZeile).Value = "1.0" Then
.Rows(lngZeile).Font.Color = -11480942
End If
Next lngZeile
End With
End Sub

Anzeige
und warum nicht mit bedingter Formatierung? o.w.T.
04.08.2021 16:16:06
Werner
AW: Zeilen nach Bedingung Farbig
05.08.2021 09:48:04
Charly
Hi Dom
Meine VBA Kenntnisse sind zwar sehr bescheiden, aber versuch mal so.
Bereich kannst du ja anpassen.

Sub Test_Version()
Dim cell As Object
Application.ScreenUpdating = False
With Sheets(1)
For Each cell In .Range("G4:G" & .Cells(Rows.Count, 7).End(xlUp).Row)
If .Range(.Cells(cell.Row, 1), .Cells(cell.Row, 26)).Interior.Color = -11480942 Then
.Range("A4:Z" & .Cells(Rows.Count, 7).End(xlUp).Row).Interior.Color = xlNone
End If
If cell = "1.0" Then .Range(.Cells(cell.Row, 1), .Cells(cell.Row, 26)).Interior.Color = -11480942
Next cell
End With
End Sub
Gruß Charly
Anzeige
AW: Zeilen nach Bedingung Farbig
05.08.2021 10:20:43
Pierre
Hallo Dom,
1.

With Sheet1
heißt

With Sheets(1)
2. willst du nun die gesamte Zeile grün haben oder nur F & G?
Wenn du die gesamte Zeile färben willst, dann würde der Code an sich bis auf die Änderung unter 1. passen. Wenn wirklich nur F & G gefärbt werden sollen, dann brauchst du noch eine weitere kleine Anpassung:

If .Range("G" & lngZeile).Value = "1.0" Then
.Rows(lngZeile).Font.Color = -11480942
wird zu:

If .Range("G" & lngZeile).Value = "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.Color = -11480942
3. würde ich vielleicht noch ein ElseIf einbauen, damit die Schriftfarbe wieder schwarz wird, wenn der Eintrag 1.0 aus Spalte G gelöscht bzw. verändert wird. Ist das gewünscht? Wenn ja, dann einfach nach deinem If-Block nochmal den Gleichen mit ElseIf einfügen, nur hier nicht Value = sondern Value . Hier natürlich den Colorcode ändern.
Gruß Pierre
PS: Nächstes Mal vielleicht direkt mitteilen, dass du die Sache gerne über VBA lösen willst ;-)
Anzeige
AW: Zeilen nach Bedingung Farbig
06.08.2021 10:50:44
Dom
Hallo erstmal Danke das klappt soweit :)
jetzt habe ich noch ein Frage:
in meiner Tabelle in Spalte F steht cancelled: mit unterschiedlichem Text
Jedes Mal wenn in der Zeile das Keywort cancelled steht soll die Formatierung durchgeführt werden.
Nur wie schreib ich das in den Code ?
Beispiel :
cancelled: obsolete
cancelled: obsolete, replaced
cancelled: ....

Sub Version()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheets(1)
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Range("F" & lngZeile).Value = "*?cancelled*?" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.Colorindex = 3
End If
Next lngZeile
End With
End Sub

Anzeige
AW: Zeilen nach Bedingung Farbig
06.08.2021 11:15:01
GerdL
Moin,
zwei der Möglichkeiten:

If .Cells(lngZeile, 6).Value Like "*cancelled*" Then

If Instr(.Cells(lngZeile, 6), "cancelled") > 0 Then 
Gruß Gerd
AW: Zeilen nach Bedingung Farbig
06.08.2021 11:26:15
Dom
Danke :)
wie kann ich die beiden Sub's in eine schreiben ?
Wenn in der Spalte 7, in den Zeilen "1.0" steht dann wird der Text in Spalte 6 und 7 grün formatiert.
Wenn in der Spalte 6 das KeyWort cancelled steht dann wird der Text in Spalte 6 und 7 rot formatiert.

Sub Version()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheets(1)
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 7).Value Like "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.Color = -11489280
End If
Next lngZeile
End With
End Sub

Sub Version2()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheets(1)
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 3
End If
Next lngZeile
End With
End Sub

Anzeige
AW: Zeilen nach Bedingung Farbig
06.08.2021 11:35:47
Pierre
Hallo Dom,
ohne Test, sollte aber gehen:

If .Cells(lngZeile, 7).Value Like "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.Color = -11489280
If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 3
End If
End If
Das muss in deinem 1. Code zwischen die For-Next-Schleife, der Rest bleibt so stehen wie es ist.
Übrigens würde ich persönlich mich für eines entscheiden, entweder Color oder ColorIndex ;-)
Möchtest du meinen Vorschlag bzgl. Farblöschung nicht umsetzen? Musst du natürlich auch nicht, ich sehe diesen nur nicht in deinem Code.
Gruß Pierre
Anzeige
AW: Zeilen nach Bedingung Farbig
06.08.2021 12:46:35
Dom
Danke Pierre :)
das mit dem ifelse klappt noch nicht. Bekomme einen compile Fehler

Sub formatierung()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheets(1)
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 7).Value Like "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 10
ifElse
.Cells(lngZeile, 7).Value  "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 1
End If
If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 3
.Range("B" & lngZeile).Font.ColorIndex = 3
End If
Next lngZeile
End With
End Sub

Anzeige
AW: Zeilen nach Bedingung Farbig
06.08.2021 13:05:32
Pierre
Wie kommst du darauf, den Code so aufzubauen? o.O

Sub Version()
Dim lngZeile As Long
Dim lngZeileMax As Long
With Sheets(1)
lngZeileMax = .Range("A" & .Rows.Count).End(xlUp).Row
For lngZeile = 1 To lngZeileMax
If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 3  'rot
ElseIf .Cells(lngZeile, 6).Value  "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 1 'schwarz!
If .Cells(lngZeile, 7).Value Like "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 43  'grün!
ElseIf .Cells(lngZeile, 7).Value  "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 1 'schwarz!
End If
End If
Next lngZeile
End With
End Sub
Versuch es so. Für mich übersichtlicher ist es (da der Code ja nun keine 100.000 Zeilen hat), die If-Blöcke zu trennen:
Würde dann so aussehen:

If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 3  'rot
ElseIf .Cells(lngZeile, 6).Value  "*cancelled*" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 1 'schwarz!
End If
If .Cells(lngZeile, 7).Value Like "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 43  'grün!
ElseIf .Cells(lngZeile, 7).Value  "1.0" Then
.Range("F" & lngZeile, "G" & lngZeile).Font.ColorIndex = 1 'schwarz!
End If
Ob das jetzt mit den Jokern und dem Like funktioniert, weiß ich nicht, habe ich nicht getestet!
Gruß Pierre
PS: Das heißt, wie du fett gedruckt sehen kannst, ElseIf und nicht IfElse!
Anzeige
noch etwas:
06.08.2021 13:08:39
Pierre
Entscheide dich am Besten für entweder

Cells(lngZeile, 6)
ODER

Range("F" & lngZeile)
Ich bin nur zu faul, das für dich zu ändern ;-)
AW: Schrift in Zellen nach Bedingung farbig
06.08.2021 13:59:22
GerdL
Moin

Sub Unit()
Dim lngZeile As Long
With Sheets(1)
.Columns("F:G").Font.ColorIndex = 1
For lngZeile = 1 To Application.Max(.Cells(.Rows.Count, 6).End(xlUp).Row, .Cells(.Rows.Count, 7).End(xlUp).Row)
If .Cells(lngZeile, 6).Value Like "*cancelled*" Then
.Cells(lngZeile, 6).Resize(1, 2).Font.ColorIndex = 3
ElseIf .Cells(lngZeile, 7).Text = "1.0" Then
.Cells(lngZeile, 6).Resize(1, 2).Font.Color = -11480942
End If
Next lngZeile
End With
End Sub
Gruß Gerd
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige