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

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

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

372 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige