Filtern und Sortieren | |
Befehl / Beispiele | Beschreibung |
Range(<Adresse>).AutoFilter Field:=<Spalte>, Criteria1:= <FilterKriterium> | Filtern über den Autofilter |
Sub FilterTest1() AutoFilter "A11", 5, "dep" End Sub Sub FilterTest2() Dim KriterienFeld As Variant: KriterienFeld = Array("Hamburg", "Lübeck", "Berlin", "Bremen") AutoFilter "A3", 1, KriterienFeld End Sub Sub AutoFilter(ErsteZelle, Spalte, FilterKriterium) '+--------------------------------------------------------------------------------------------------+ '| Filtern über die Autofilter-Option. | '+--------------------------------------------------------------------------------------------------+ '| ErsteZelle = 1. Zelle der zu filternden Datenbank. | '| Spalte = Spaltennummer der Datenbank, in welchem sich das Filterkriterium befindet. | '| FilterKriterium = Filterkriterium nach welcher in der angegebenen Spalte gefiltert werden soll | '+--------------------------------------------------------------------------------------------------+ Range(ErsteZelle).AutoFilter Spalte, FilterKriterium, xlFilterValues End Sub |
|
ActiveSheet.ShowAllData | Alle Daten anzeigen |
Sub AlleDatenAnzeigen() '+------------------------------------------------------------------+ '| Anzeigen aller Daten, falls eine Tabelle gefiltert worden ist. | '+------------------------------------------------------------------+ ActiveSheet.AutoFilter.ShowAllData End Sub |
|
Cells.AutoFilter | Autofilter ausschalten |
Sub AutoFilterAusschalten() '+-------------------------------------------------------+ '| Auschalten des Autofilters, falls dieser aktiv ist. | '+-------------------------------------------------------+ If ActiveSheet.AutoFilterMode Then Cells.AutoFilter End Sub |
|
Range(<DatenBereich>).AdvancedFilter ... | Filtern über den Spezialfilter |
Sub SpezialFilter(DatenBereich As String,
Kriterienbereich As String, _ KeineDublikate As Boolean, Optional NeuerOrt) '+------------------------------------------------------------------------------------+ '| Spezialfilter anwenden | '+------------------------------------------------------------------------------------+ '| DatenBereich = Hier befindet sich die Datenbank | '| Beispiel: "A5:A500" | '| Kriterienbereich = Hier stehen die Filterkriterien | '| Beispiel: "A1:A5" ( Spaltenkopf nicht vergessen !! ) | '| KeineDublikate = Es werden keine Dublikate ausgegeben | '| NeuerOrt = Wenn angegeben, werden die gefilterten Daten dort ausgegeben. | '| Beispiel: "C5" | '+------------------------------------------------------------------------------------+ If IsMissing(NeuerOrt) = False Then Range(DatenBereich).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range(Kriterienbereich), _ CopyToRange:=Range(NeuerOrt), _ Unique:=KeineDublikate Else Range(DatenBereich).AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Range(Kriterienbereich), _ Unique:=KeineDublikate End If End Sub Sub SpezialFilter_Test() '+----------------------------+ '| Testen des Spezialfilters | '+----------------------------+ Dim Bereich As String Dim Kriterien As String Bereich = Range("A5").CurrentRegion.Address Kriterien = Range("A1").CurrentRegion.Address SpezialFilter Bereich, Kriterien, True, "C5" End Sub |
|
Range(<Bereich>).Sort ... | Tabelle sortieren ( Zeilen ) |
Sub ZeilenSortierungEinfach(Bereich As String,
Spalte As Integer, Aufwärts As Boolean) '+---------------------------------------------------------------------------------------------+ '| Sortiert eine Tabelle Zeilenweise | '| ACHTUNG: Es wird davon ausgegangen, dass der übergebene Bereich eine Spaltenkopf besitzt. | '+---------------------------------------------------------------------------------------------+ '| Bereich = Der zu sortierende Bereich | '| Spalte = Spalte, nach welcher die Tabelle sortiert werden soll. | '| ACHTUNG: Bezieht sich auf die Spalte der Excel-Tabellenblatt-Spalten-Beschriftung. | '+---------------------------------------------------------------------------------------------+ Dim SortierRichtung As Integer SortierRichtung = IIf(Aufwärts = True, xlAscending, xlDescending) Range(Bereich).Sort Key1:=Columns(Spalte), _ Order1:=SortierRichtung, _ Header:=xlYes, _ OrderCustom:=1, _ MatchCase:=True, _ Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub Sub Test() Dim Bereich As String Bereich = Range("F6").CurrentRegion.Address ZeilenSortierungEinfach Bereich, 10, True End Sub |
|
Range(<Bereich>).Sort ... | Tabelle sortieren ( Spalten ) |
Sub SpaltenSortierung(Bereich As String, Zeile As
Integer, LinksRechts As Boolean) '+---------------------------------------------------------------------------------------------+ '| Sortiert eine Tabelle Spaltenweise | '| ACHTUNG: Es wird davon ausgegangen, dass die Zeilen keine Überschrift enthalten | '+---------------------------------------------------------------------------------------------+ '| Bereich = Der zu sortierende Bereich | '| Zeile = Tabellenzeile, welche sortiert werden soll. | '| ACHTUNG: Bezieht sich auf die Zeile der Excel-Tabellenblatt-Zeilen-Beschriftung. | '+---------------------------------------------------------------------------------------------+ Dim SortierRichtung As Integer SortierRichtung = IIf(LinksRechts = True, xlAscending, xlDescending) Range(Bereich).Sort Key1:=Rows(Zeile), _ Order1:=SortierRichtung, _ Header:=xlNo, _ OrderCustom:=1, _ MatchCase:=True, _ Orientation:=xlLeftToRight, _ DataOption1:=xlSortNormal End Sub Sub Test() Dim Bereich As String Bereich = Range("F6").CurrentRegion.Address SpaltenSortierung Bereich, 10, True End Sub |