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

Forumthread: Zeile prüfen, ob mehrere Zellen nicht Leer sind

Zeile prüfen, ob mehrere Zellen nicht Leer sind
06.07.2016 16:57:09
Kai
Hallo ,
ich prüfe mit einer Schleife ob in Spalte B "999999" steht und Spalte C Leer, dann soll C rot markiert werden.
Das gleiche dann auch für D ...
If Range("B" & lngZeile) = "999999" And Range("C" & lngZeile) = "" Then
Range("C" & lngZeile).Interior.ColorIndex = 3
End If
If Range("B" & lngZeile) = "999999" And Range("D" & lngZeile) = "" Then
Range("D" & lngZeile).Interior.ColorIndex = 3
End If
Nun kommen noch weitere Spalten, hinzu, bei denen geprüft werden soll, ob B = "999999" und E ="" und J="" und Z = "" usw.....
Nun möchte ich für jede Spalte nicht so ein Dreizeiler schreiben.
Kann man das alles in eine Abfrage packen ? Bedingung1 B="999999" ist immer gleich.
nur die Spalten, die auf "" geprüft werden sollen, sind verschieden.
Danke mal Kai

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile prüfen, ob mehrere Zellen nicht Leer si
06.07.2016 17:17:00
Daniel
Hi
da die Bedingung für Spalte B in jeder Zeile gleich ist, kannst du diese vorab machen, so dass diee nur einmal für jede Zeile ausgeführt werden muss.
Sie gilt dann für alle Zeleln dieser Zeile:
If Cells(lnZeile, 2) = "999999" Then Then
If Cells(lngZeile, 3) = "" then cells(lngZeile, 3).Interior.ColorIndex = 3
If Cells(lngZeile, 4) = "" then cells(lngZeile, 4).Interior.ColorIndex = 3
If Cells(lngZeile, 5) = "" then cells(lngZeile, 5).Interior.ColorIndex = 3
usw für alle Spalten
End If
bei vielen Spalten könnte man noch eine Schleife über die Spalten erstellen:
dim S
If Cells(lnZeile, 2) = "999999" Then
For Each S in Array(3, 4, 5, 10, 26)
If Cells(lngZeile, S) = "" then cells(lngZeile, S).Interior.ColorIndex = 3
Next
End If
im Array werden alle Spalten aufgelistet, die du umfärben willst.
ansonsten gibt noch folgende Alternativlösung
Columns(2).Replace "999999", true, xlwhole
Intersect(Columns(2).SpecialCells(xlcelltypeconstants, 4).EntireRow, Range("C:E,J:J,Z:Z")). _
SpecialCells(xlcelltypeblanks).Interior.colorIndex = 3
Columns(2).Replace True, "999999"

das setzt aber voraus, dass das 999999 als Festwert in Spalte B steht und nicht als Formel.
Gruß Daniel

Anzeige
Besten Dank, hat geholfen owT
07.07.2016 15:18:04
Kai
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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