AW: Autofilter nur erstes Ergebniss anzeigen
24.07.2015 18:52:03
Klexy
Da hab ich drei bis fünf Einwände:
1. Eine Tabelle sollte immer in A1 beginnen. Wenn aus Dekorationsgründen die erste Spalte und die ersten 4 Zeilen leer bleiben, wie das bei dir anscheinend der Fall ist, wird alles kompliziert und fehlerträchtig. Außerdem verschwendest du Bildschirmfläche, wenn du schon ab der 10. Tabellenzeile scrollen musst. Wenn du z.B. fürs Ausdrucken Rand brauchst, mach das mit der Seitenformatierung.
2. Was du als Lösung hast, funktioniert nur wenn in der ersten Spalte ein eindeutiger Eintrag ist.
3. Wenn in diese Tabelle keine Hilfsspalte eingetragen werden kann, weil viele andere Tabellen darauf zugreifen, warum kann dann in B4 was eingetragen werden? Und B4 ist auch nicht ohne, denn B4 ist in direktem Kontakt zur Tabelle und könnte bei Sortierfunktionen stören, weil die Spaltenköpfe nicht mehr ganz oben in der Tabelle sind.
4. So würde es bei einer "normalen" Tabelle (beginnend in A1) elegant funktionieren:
Sub nur_erster_Filterdatensatz()
Dim Spalte As Integer, Zelle As Range
Spalte = 5
ActiveSheet.Cells(1, Spalte).AutoFilter Field:=Spalte, Criteria1:="="
Set Zelle = Columns(Spalte).Find(What:="", After:=Cells(1, Spalte), LookIn:=xlValues, _
LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
Rows("2:" & ActiveSheet.UsedRange.Rows.Count & "").Hidden = True
Zelle.EntireRow.Hidden = False
Zelle.Select
End Sub
Du kannst das Makro natürlich auch an deine verschobene Tabelle anpassen.