ich habe in der Spalte "A" Kundennummern stehen.
Ich will per Makro / Autofilter die kompletten Zeilen
derjehnigen Kunden löschen, die noch keine Kundennummer haben.
wie mache ich das ?
Vielen Dank vorab!
Sub leere_loeschen
dim scell as integer
dim anzZeilen as integer
thisworkbook.worksheets("name oder nummer des tabs").rows("1:1").autofilter 'schaltet den _
autofilter kurzzeitig aus; angenommen auch das in row 1 der autofilter ist)
anzZeilen = thisworkbook.worksheets("name oder nummer des tabs").Cells(Rows.Count, 1).End(xlUp). _
Row ' 1 = Row A ; wichtig ist hier das man eine Row auswählt wo durchgehend werte vorhanden sind. Ansonsten gibt es einen falschen wert für anzzeilen. Dann muss man halt einen manuell eingeben)
for scell = anzzeilen to 1 step 1
if thisworkbook.worksheets("name tab").cells(scell, 1).value = empty then 'Annahme: 1 = A _
stehen die Kdnnummern
thisworkbook.worksheets("name tab").rows(scell).delete
end if
next scell
End Sub
Das ist ungetestet aber müsste so ca. gehen.
Range("2:65536").entirerow.specialcells(xlcelltypevisible).delete
wenn allerdings die Zellen mit dem Geburtsdatum tatsächlich leer sind (also keine Formeln mit dem Ergebnis "" enthalten), dann funktionierts auch ohne Autofilter:
Columns(4).SpecialCells(xlcelltypeblanks).EntireRow.delete
im Prinzip könnte bei beiden Varianten auf das Sortieren verzichtet werden, allerdings ist die Geschwindigkeit bei grösseren Datenmengen deutlich höher, wenn die Daten sortiert sind, von daher also lieber drinlassen.
Gruß, Daniel