AW: überholte Stände in Farbe 37 darstellen?
29.01.2008 10:34:00
Daniel
Hi
.Sort key1:=.Cells(1, 5), order1:=xlDescending, header:=xlNo
For sp = 4 To 1 Step -1
.Sort key1:=.Cells(1, sp), order1:=xlAscending, header:=xlNo
Next
das sortiert den Code, die Spalte E aufsteigend, damit der grösste Buchstabe oben steht, die restlichen absteigend, damit gleiche alle Zeilen, die in A, B , C und D die gleichen Werte haben, direkt untereinander stehen.
Dann kommt ne schleife, die alle Zeilen des Zellbereichs durchläuft (ohne die Erste Zeile)
check = True
For sp = 1 To 4
check = check And (.Cells(ze, sp) = .Cells(ze - 1, sp))
Next
hier wird geprüft, ob die Zellen A, B C und D von 2 benachbarten Zeilen gleich sind, sobald ein Wert nicht gleich ist, wird check = false
und dann kommt die Logische Prüfung, dh wenn check = false ist, dann handelt es sich um einen neuen Abschnitt und die Zeile muss auf jeden Fall schwarz werden (durch die Sortierung ist gewährleistet, daß es immer den grössten Buchstaben des Abschnitts trifft).
Ist Check = True, dann gehören beide Zeilen zum gleichen Abschnitt, jetzt muss nur noch unterschieden werden, ob die Zelle in Spalte E leer ist, dann wird die Zeile schwarz, oder ob sie einen Wert enthält, dann wird sie hellblau.
Gruß, Daniel