Hallo zusammen,
hier noch mal der kurt. Mit dem Lösungsansatz von Helmut komme ich nicht klar.
Der löscht mit irgendwie nur die Zeile 1 weg.
Hier nun der Auszug aus meinem Makro. Noch mal zur Erläuterung:
Aus einem Tagebuch Zellen B8:I65000 sollen immer am Ende des Tages die obersten Datensätze gleichen Datums gelöscht werden. In der Spalte B steht das Datum:
01.09.12 09:40 blablablablabla
01.09.12 10:20 blablablablabla
01.09.12 11:33 blablablablabla
02.09.12 06:15 blablablablabla
02.09.12 07:20 blablablablabla
u.s.w.
Folgendes Problem baute sich auf: Das Makro hat irgenwie die Spalte B (Datum) zwar gefiltert,aber nicht angezeigt.
Lösung: Ich hab am Anfang des Makro`s Spalte B in Text formatiert, dann funktionierte es!
Damit immer der Inhalt der Zelle B9 (ist ja jeden Tag ein anderer) und nicht speziell der 01.09.12 als Suchkriterium im Makro steht, hab ich B9 in eckige Klammern gesetzt:
Liste.Autofilter field:=1, Criteria1:=[B9]
Hier nun mein Makro
Sub autofilter()
'selektiert Spalte B
Range(Selection, Selection.End(xlDown)).Select
'Ändert Formatierung von Datum aufText
Selection.NumberFormat = "@"
'Autofilter wird aktiviert und nach Zelle B9 wird gefiltert
Dim Liste As Range
Set Liste = ActiveSheet.Range("B8:B64999")
Liste.autofilter
'Wenn Criterial1:= in eckiger Klammer […] kann eine Zelle benannt werden.
Liste.autofilter field:=1, Criteria1:=[B9]
'Erweitert selektierten Bereich nach rechts
Range(Selection, Selection.End(xlToRight)).Select
'Löscht selektierten Bereich
Selection.ClearContents
ActiveWindow.ScrollColumn = 1
Range("B9").Select
'Stellt Autofilter wieder auf Null
Liste.autofilter field:=1
'Sortiert die Tabelle und bringt somit die leeren gelöschten Felder weg
Range("B8:I65000").Sort Key1:=Range("B8"), Order1:=xlAscending, Header:= _
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B9").Select
'Bedeutung:Formatiert SpalteB wieder von Text in Datum
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "dd/mm/yy;@"
'geht in der Tabelle wieder nach oben
Selection.End(xlUp).Select
Range("B9").Select
End Sub
Danke noch einmal für Euer Interesse und Eure Bemühungen
Gruß Kurt