zorbas81
Goto Top

Zeilen farblich markieren

Hallo liebe Excel/VBA Profis,

ich habe ein kleines Problem.

Ich habe eine Tabelle, die nicht nummeriert ist, sondern lauter 1en hat, und ab und zu eine 0.
Bsp:
0 gelb
1 gelb
1 gelb
1 gelb
0 blau
1 blau
1 blau
0 gelb
1 gelb
1 gelb

Folgendes möchte ich gerne mit einem Makro machen:
Beginnend bei der null, sollen die Zeilen bis zur nächsten null gelb markiert werden. Ab der nächsten null blau. und ab der nächsten null wieder gelb. usw.
Also zwei Farben abwechselnd beginnend bei den Nullern.

Könnt Ihr mir hierbei helfen?

Vielen Dank im Voraus.

Grüße

Alex

Content-Key: 97758

Url: https://administrator.de/contentid/97758

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Sep 24, 2008 at 14:00:41 (UTC)
Goto Top
Hallo Zorbas81!

Für Werte ab A2 etwa so:
Sub Einfaerben()

Spalte = "A"  
Zeile = 2
Farbe = 0

Do While Cells(Zeile, Spalte).Value <> "" And Zeile <= 65536  
    If Cells(Zeile, Spalte).Value = 0 Then If Farbe <> 6 Then Farbe = 6 Else Farbe = 5
    If Farbe > 0 Then Cells(Zeile, Spalte).Interior.ColorIndex = Farbe
    Zeile = Zeile + 1
Loop

End Sub
Falls vor der ersten 0 noch andere Werte kommen, werden die entsprechenden Zellen nicht eingefärbt - um das zu ändern, einfach den Startwert der Farbe auf zB 6 setzen und den Teil "If Farbe > 0 Then" entfernen (und nur den Rest der Zeile 9 belassen).

Grüße
bastla
Member: Zorbas81
Zorbas81 Sep 24, 2008 at 14:37:49 (UTC)
Goto Top
Sei gegrüßt lieber Bastla !! face-smile

Vorab: Es freut mich tierisch, dass du mir schon mehrmals geholfen hast, echt Klasse, solchen Leuten wie dir gebührt mein Respekt, die sich die Mühe machen anderen zu helfen, und das einfach nur so!! Vielen vielen Dank!

Und jetzt zu deiner Lösung:

WOOOW, Klasse es funktioniert EINWANDFREI!!! Habe es einbisschen umgeschrieben, siehst ja nachfolgend.
Aber mein Abend ist somit gerettet Bastla.

Ich verneige mich vor dir, wegen deiner Hilfsbereitschaft und weil du mir schon so oft face-smile geholfen hast!!! face-smile

Wünsch dir noch einen schönen Abend.

Grüße
Alex


Dim z As Integer
'z soll die zeilennummner sein
z = 3

Do While Cells(z, 1).Value <> "" And Zeile <= 65536
If Cells(z, 1).Value = 0 Then If Farbe <> 6 Then Farbe = 6 Else Farbe = 8
If Farbe > 0 Then Rows(z).Interior.ColorIndex = Farbe
z = z + 1
Loop
Member: bastla
bastla Sep 24, 2008 at 15:40:09 (UTC)
Goto Top
Hallo Alex!

Freut mich, wenn's für Dich passt ... face-smile

Hier (in diesem Forum) helfen zu können, macht (meistens face-wink) Spaß, und ist auch eine Art, "danke" zu sagen für Vieles, was ich selbst schon bekommen habe ...

Grüße
bastla