Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen ohne farbliche Markierungen löschen

Zeilen ohne farbliche Markierungen löschen
08.12.2015 16:55:47
Patrick

Hallo Leute,
eigentlich müsste das Makro ganz einfach sein. Nur entweder stehe ich auf dem Schlauch oder ich denk zu kompliziert.
Ich habe eine Tabelle A5 bis O8000, also recht groß. In den Spalte A bis C sind diverse Einträge grün hinterlegt. Ich möchte nun durch ein Makro alle Zeilen, in denen diese farbliche Hinterlegung NICHT vorhanden ist, aus der Tabelle rauslöschen lassen, so dass ich nur noch die farblichen Einträge sehe.
Ich habe es über den Colour Index 2 probiert (2 steht doch für weiß, oder?), jedoch passiert dann nichts.
So sieht es bis jetzt aus:

Sub unfarbige_loeschen()
For rwIndex = 5 To 8000
With Worksheets("Completed").Rows(rwIndex)
If .Interior.ColorIndex = 2 Then
.Delete
End If
End With
Next rwIndex
End Sub

Wo steckt der Fehler?
Gruß Patrick

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ohne farbliche Markierungen löschen
08.12.2015 17:16:48
Hajo_Zi
Hallo Patrick,
nicht 2 sondern Xlnone

AW: Zeilen ohne farbliche Markierungen löschen
08.12.2015 18:56:42
Nepumuk
Hallo,
zudem muss die Schleife von unten nach oben laufen denn die Zeile 6 wird automatisch zur Zeile 5 wenn du die Zeile 5 löschst. Damit würde dir diese Zeile durch die Lappen gehen.
Sub unfarbige_loeschen()
    Dim rwIndex As Long
    With Worksheets("Completed")
        For rwIndex = 8000 To 5 Step -1
            With .Rows(rwIndex)
                If .Interior.ColorIndex = xlColorIndexNone Then .Delete
            End With
        Next rwIndex
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 10:13:36
Patrick
Hallo zusammen,
danke erstmal für die Hilfe. Nur leider funktioniert es immer noch nicht. Sobald ich das Makro laufen lasse, erscheint die Sanduhr und das wars. Excel rechnet sich tot.
Mal für mich zum Verständnis: rwIndex = 8000...bedeutet doch, dass sich das Makro auf 8000 Zeilen bezieht, oder? Oder hängt vielleicht da mein Fehler?

AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 10:24:36
Patrick
Achso...die Färbungen in den Spalten A-C sind durch bedingte Formatierungen hervorgerufen. Liegt es vielleicht daran?

AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 10:52:49
Daniel
Hi
wenn du Farben die durch die bedingte Formatierung erzeugt werden erkennen willst, musst du die Eigenschaft: range("A3").DisplayFormat.Interior.color (bzw .Colorindex) abfragen.
ausserdem ist es ungünstig, die ganze Zeile abzufragen, denn wenn im abgefragten Bereich die Zellen unterschiedliche Farben haben, bekommst du kein sinnvolles Ergebnis.
Alternativ zur Schleife kannst du den Autofilter verwenden.
mit dem Autofilter kann man nach einer Farbe filtern und der Autofilter erkennt auch farben, die über die Bedingte Formatierung erkannt werden.
in gefilterten Tabellen werden nur die sichtbaren Zeilen bearbeitet, dh du blendest alle Zeilen aus, die nicht gelöscht werden sollen und löscht dann alle Zeilen.
folgender Code löscht alle Zeilen ab Zeile 5, die in den Spalten A-C keine Farbmarkierung haben:
Sub Makro1()
With Range(Cells(4, 1), Cells.SpecialCells(xlCellTypeLastCell))
.AutoFilter Field:=1, Operator:=xlFilterNoFill
.AutoFilter Field:=2, Operator:=xlFilterNoFill
.AutoFilter Field:=3, Operator:=xlFilterNoFill
.Resize(.Rows.Count - 1).Offset(1, 0).EntireRow.Delete
.AutoFilter
End With
End Sub
Gruß Daniel

Anzeige
AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 11:58:15
Patrick
Hi Daniel,
perfekt. Genau so dachte ich mir das. Besten Dank.
Habe jetzt nur das kleine Problem, dass durch das Löschen der Zeilen die Bezüge der bedingten Formatierung nicht mehr passen. Meine damit, dass nach Makroausführung nicht mehr alle Zellen farbig sind, die es sein müssten. Beim löschen der Zeilen werden die Zeilennummern bei den bedingten Formatierungen rausgenommen :-(
Kann man das irgendwie umgehen?
Gruß Patrick

AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 12:12:11
Daniel
Hi
ja das ist ein Grundproblem der neuen Bedingten Formatierung, die mit so was nicht richtig umgehen kann. Diesbezüglich was die alte (bis Excel 2003) besser.
im Zweifelsfall nach solchen Aktionen per Makro die Bedingten Formate löschen und neu erstellen.
oder statt Zeilen löschen nur die Inhalte löschen und dann durch sortieren die Leerzeilen ans Tabellenende bringen.
grundsätzlich sollte man, wenn man Zeilen löschen oder in der Tabelle umsortieren will, Formeln immer so schreiben, dass sie nur Zellbezüge auf die gleiche Zeile, in der sie stehen enthalten oder sich auf die ganze Spalte beziehen.
wenn man trotzdem einen Bezug auf die Zelle in der benachbarten Zeile braucht, dann sollte man diesen Zellbezüg über INDEX machen:
=Index(A:A;Zeile()-1)
damit hat man dann einen realen Zellbezug auf die Zeile obendrüber, Formal aber nur auf die ganze Spalte und die eigene Zeile, womit die obige Bedinung formal erfüllt ist und es keinen Bezugsfehler mehr gibt, wenn die Zeile obendrüber gelöscht wird.
Gruß Daniel

Anzeige
AW: Zeilen ohne farbliche Markierungen löschen
09.12.2015 12:50:37
Patrick
Ah...und wieder ein Stück schlauer. Besten Dank für die kleine Schulung. Werd es mir merken.
Dann werd ich das jetzt mal "umschreiben".
Gruß Patrick

238 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige