Excel 2010 VBA - Gefilterte Zelleninhalte löschen / leeren
Hallo Community,
hab da mal wieder ein Problemchen... Ich habe eine Liste, über die ich jeden Morgen ein Makro laufen lassen muss. Nun ist es so, dass ich im Moment händisch nach drei Kunden filtere und bei diesen Kunden einen Termin löschen muss, da dass ERP-System hier einen Termin generiert, der falsch ist. Nun möchte ich bei diesen Kunden / in den gefilterten Zellen den Zelleninhalt (KW) ebenfalls über das Makro löschen. Meine ersten Versuche haben halbwegs hingehauen, allerdings wurden nicht nur die gefilterten Inhalte, sondern alle Inhalte in der Range gelöscht. Der nächste Versuch hat dazu geführt, dass die Zellinhalte noch da waren, aber die Überschriften gelöscht wurden ... Nun habe ich alles wieder auf Anfang gesetzt :-(
Brauche Hilfe ... Danke im Voraus.
2 Antworten
Ich habe jetzt mal in Spalte E, ab E3 ein paar Werte eingetragen, und dann einen Filter gesetzt und drei beliebige Werte gefiltert, also so, dass nur noch diese Werte sichtbar waren.
Dann habe ich diesen Teil Deines Makros laufen lassen:
Sub test() Range("E3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.ClearContents
End Sub
...und diese drei Werte wurden gelöscht. Alle anderen - nicht sichtbaren - Werte blieben erhalten.
Wenn ich Deine Beschreibung in der Frage richtig verstanden habe, ist das genau das, was Du erreichen wolltest!!!???
P.S.:
Das Ganze lässt sich übrigens auch mit eine Einzeiler und ohne Select erreichen:
Range("E3", Range("E3").End(xlDown)).SpecialCells(xlCellTypeVisible).ClearContents
Frage also: WAS soll hier anders ablaufen?
Hilfe - ja gerne, aber ... es ist mehr Info nötig:
Wenn Du in der Lage bist, im VBA-Script zu schreiben:
1.) Nach händischer Filterung den Cursor auf die zu löschende Zeile stellen, im Makro die Zeile merken: Löschzeile = Selection.Row
2.) Im Makro dann die entsprechende Zelle leeren: Cells(Löschzeile,Spalte)=""
Alternativ: zeig uns mal das Makro, vielleicht ist es ja anpassbar.
Gruß aus Berlin
Nachfolgend der Auszug aus dem Makro...
ActiveSheet.Range("$A$2:$T$1769").AutoFilter Field:=8, Criteria1:=Array( _
"Kunde A", "Kunde C"), Operator:= _
xlFilterValues
Range("E3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.ClearContents