Löschen bestimmer Zeilen mit Makros, sehr komplex
Hallo
Habe eine große Excel Datei ca 6000 Zeilen, 30 Spalten in der Werte stehen
Eine Zeile steht quasi für einen Vorgang mit 30 Attributen
Wie bekommen ich es hin ganz bestimmte Zeilen zu löschen die nicht für mich relevant sind
3 ganz bestimmte probleme traten hier auf:
-jeder vorgang(Zeile) der in spalte K ein "x" stehen hat muss raus (wenn zufälligerweise in Spalte J ein "x" steht muss der Vorgang bleiben)
-jeder vorgang(Zeile) der in spalte F ein Datum nach dem 31.07.2008 stehen hat muss raus
-jeder Vorgang(Zeile) der in Spalte B eine "1" enthält und gleichzeitig in spalte J eine Datum nach dem "15.07" muss raus
habe versucht ein makro mit einem autofilter aufzunehmen aber bin gescheitert
gibt es dafür eine lösung,?
vielen dank im Voraus
Antwort schreiben
Antwort 1 von Saarbauer vom 13.08.2020, 14:42 Options
Hallo,
versuch es mal mit dem Makro
Sub Löschen()
Range("A1").Select
While IsEmpty(ActiveCell) = False
Zeile = ActiveCell.Row
If Range("K" & Zeile).Value = "x" And Range("J" & Zeile).Value <> "x" Then Range(Zeile).Delete
If Range("F" & Zeile) > DateValue("31.7.08") Then Range(Zeile).Delete
If Range("B" & Zeile) = 1 And Day(Range("J" & Zeile).Value) > 15 And Month(Range("J" & Zeile).Value) > 7 Then Range(Zeile).Delete
ActiveCell.Offset(1, 0).Select
Wend
End Sub
aber erst mal in einer Probedatei, da ich es nicht testen konnte
Gruß
Helmut
Antwort 2 von intern234 vom 14.08.2020, 08:13 Options
hallo
erst einmal vielen dank für de schnelle hilfe
leider läuft es nicht, es wird die fehlermeldung "Wend ohne While " angezeigt
Antwort 3 von Saarbauer vom 14.08.2020, 08:21 Options
Hallo,
ist so nicht nachvollziehbar, da in meiner Datei beide Anagben vorhanden
s. Zele 3 u. Zeile 9
Gruß
Helmut
Antwort 4 von intern234 vom 14.08.2020, 08:44 Options
blöderweise von mir nicht komplett reinkopiert, sorry.
jedeoch eine frage hätte ich noch
ein weiteres kriterium kam hinzu
-wenn in Spalte O (kann alle Werte annehmen) NICHT die werte 240000 ODER 241000 ODER 240100 ODER 241100 stehen muss die Zeile raus
(anderesrum: die Zeile darf nur bleiben wenn in Spalte 0 die werte 240000 ODER 241000 ODER 240100 ODER 241100 stehen)
haben sie eine idee?
Antwort 5 von Saarbauer vom 14.08.2020, 15:41 Options
Hallo,
als neue Zeile einfügen
If Range("O" & Zeile) <> 240000 or Range("O" & Zeile) <> 240100 or Range("O" & Zeile) <> 241000 or Range("O" & Zeile) <> 241100 Then Range(Zeile).Delete
Gruß
Helmut