ich möchte in einer Tabelle(Bereich A1:IV1000)alle Zeilen ausblenden, die(in der gesamten Zeile)keine Füllfarbe enthält.
Danke für eure Hilfe!
Danke für eure Hilfe!
Sub ohneFarbeaus()
Dim x As Long, c As Range, ausblenden As Boolean
Application.ScreenUpdating = False
For x = 1 To 1000
ausblenden = True
For Each c In Range(Cells(x, 1), Cells(x, 256))
If Not c.Interior.ColorIndex = xlNone Then
ausblenden = False
Exit For
End If
Next
If ausblenden Then Rows(x).Hidden = True
Next
Application.ScreenUpdating = True
End Sub
dauert zwar etwas die ganze Prüfung, aber funktioniert:
Hoffe geholfen zu haben :-)
Gruss Rainer
hier an anderer Ansatz. Der Code ist kürzer und schneller, da nicht alle Zellen in Schleifen geprüft werden.
BTW, Dein Code blendet die Zeilen mit farbigen Zellen aus, es sollten aber die nicht-farbigen ausgeblendet werden.
Gruß
Martin Beck
Das hat L.Vira dann auch falsch verstanden :-) und der Frager hat's noch nicht gemerkt, sonnst hätte er sich schon wieder gemeldet :-)
Woher hast du die Indexzahl und wann wird die erzeugt bzw. welchen Status stellt sie dar?
Gruss Rainer
bei Deinem Code müßte man die IF-Struktur ja nur in
ändern, dann funktionierts.
L.Viras Code ist in Ordnung.
-4142 ist der Index, wenn ein Zelle keinen farbigen Zellhintergrund hat (entspricht xlNone). Wenn in einem Bereich verschiedene Hintergrundfarben existieren, liefert Range(Cells(i, 1), Cells(i, 256)).Interior.ColorIndex einen Fehler. Sind allerdings alle Zellen in dem Bereich nicht farbig, ist der Index für den Ganzen Bereich -4142. In Verbindung mit On Error Resume Next kann man sich das dann zu nutze machen.
Gruß
Martin Beck