Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeile einfärben wenn zwei Bedingungen erfüllt sind

Zeile einfärben wenn zwei Bedingungen erfüllt sind
03.11.2016 10:15:13
Pseudo
Hallo zusammen,
ich habe folgenden Code, der auch funktioniert:
Dim c As Range
Dim V As Long
With ActiveSheet
On Error GoTo ende
Kogr = .Columns(1).Find("Kogr", LookIn:=xlValues, LookAt:=xlWhole).Row
V = .Rows(Kogr).Find("V", LookIn:=xlValues, LookAt:=xlWhole).Column
lastcell = .Cells(Rows.Count, 1).End(xlUp).Row
For Each c In .Range(.Cells(Kogr + 1, V), .Cells(lastcell, V))
If c = "*" Then
.Rows(c.Row).Interior.ColorIndex = 43
Else
.Rows(c.Row).Interior.ColorIndex = 3
End If
Next
.Columns(V + 1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Cells(Kogr, V + 1) = "Kommentar "
End With
ende:
Es wird in der Spalte, in der "V" als Spaltenüberschrift steht gesucht. Dann wird überprüft, ob in dieser Spalte "*" steht, ist das der Fall wird die ganze Zeile grün eingefärbt, falls nicht in rot.
Jetzt soll noch in der Spalte, in der "St" steht, nach "3" gesucht werden.
Diejenigen Zeilen die zum einen in der "V" Spalte kein "*" aufweisen und zum anderen in der "St" Spalte eine "3" aufweisen, sollen nun in einer dritten Farbe eingefärbt werden.
Das Ganze muss, wie ihr sehen könnt, variabel gehalten werden, da die Zeile in der "Kogr" steht und die Spaltenpositionen sich verändern können.
Das übersteigt meinen Horizont leider. Hier der Link zur Datei:

https://www.herber.de/bbs/user/109165.xlsm

Danke schon einmal im Voraus für Eure Hilfe!
Gruß,
Pseudo
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Zeile einfärben wenn zwei Bedingungen erfüllt sind
03.11.2016 11:22:44
Michael
Hi Pseudo,
hier der Code bis zur Hälfte Deiner Sub:
Option Explicit
Sub Stuecklistenfilter_PM()
Dim Zeile As Long, i As Long
Dim ZeileEnd As Long, lastRow As Long
Dim strString As String, rngCell As Range
Dim cV As Long, cSt As Long, Kogr As Long
Dim aV, aSt ' ohne Angabe = as Variant; Verwendung als "Array"
Const suchStr = "Kogr", suchV = "V", suchSt = "St"
'Kopfzeilen Fett
Set rngCell = Columns(1).Find(suchStr, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False)
If Not rngCell Is Nothing Then
Kogr = rngCell.Row
Rows("1:" & Kogr).EntireRow.Font.Bold = True
Else
MsgBox "Kogr bei der Auswertung mit ausgeben lassen und neu versuchen"
Exit Sub
End If
' Zeilen werden als Vertriebsteil gekennzeichnet (Grün) oder als nicht Vertriebsteil (gelb) und  _
Kommentarfeld wird eingefügt
Set rngCell = Rows(Kogr).Find(suchV, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngCell Is Nothing Then
cV = rngCell.Column
Else
MsgBox "Spalte " & suchV & " nicht gefunden"
Exit Sub
End If
Set rngCell = Rows(Kogr).Find(suchSt, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngCell Is Nothing Then
cSt = rngCell.Column
Else
MsgBox "Spalte " & suchSt & " nicht gefunden"
Exit Sub
End If
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Stop
'Application.ScreenUpdating = False
aV = Cells(1, cV).Resize(lastRow)
aSt = Cells(1, cSt).Resize(lastRow)
For i = Kogr + 1 To lastRow
If aV(i, 1) = "*" Then
Rows(i).Interior.ColorIndex = 43
Else
If aSt(i, 1) = 3 Then
Rows(i).Interior.ColorIndex = 7
Else
Rows(i).Interior.ColorIndex = 3
End If
End If
Next
Columns(cV + 1).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(Kogr, cV + 1) = "Kommentar "
Exit Sub ' diese Zeile dann löschen
Schöne Grüße,
Michael
Anzeige
AW: Zeile einfärben wenn zwei .
03.11.2016 13:05:33
Pseudo
Hi Michael,
danke für´s aufräumen ;-)
Funktioniert alles wunderbar, habe nur noch ein MatchCase:= False bei der Suche nach "St" hinzugefügt, da die Spaltenüberschriften manchmal nur in Großbuchstaben sind.
Vielen Dank nochmal!
Viele Grüße,
Pseudo
gern geschehen,
03.11.2016 13:56:02
Michael
Pseudo,
vielen Dank für die Rückmeldung & schöne Grüße zurück,
Michael
Anzeige
AW: gern geschehen,
03.11.2016 13:59:39
Pseudo
Michael,
ist es eventuell auch noch möglich, eine bedingte Formatierung für die mit "Kommentar" gekennzeichnete Spalte einzufügen?
Bedingung wäre: Wenn Zellwert 0, dann Färbe die ganze Zeile gelb.
Ich habe es zwar mit dem Recorder probiert, bekomme es aber nicht in die vorhandene Syntax...
Pseudo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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