Excel VBA - Filter
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Objekte
Arbeitsblatt
Dim Arbeitsblatt Arbeitsblatt = ActiveSheet.Name
Spalte
Dim Spalte Spalte = ActiveCell.Column
Zellwert
Dim AktuellerWert As String AktuellerWert = ActiveCell.Value
Autofilter und Formular (bei leerer Zelle)
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim Spalte Dim AktuellerWert As String Dim Arbeitsblatt 'Tabellenblatt wird ermittelt 'TabellenName = ActiveWorkbook.ActiveSheet.Name '"Tickets" wird ausgegeben, das hilft mir nicht Arbeitsblatt = ActiveSheet.Name Spalte = ActiveCell.Column AktuellerWert = ActiveCell.Value 'Wenn Autofilter nicht gesetzt, ist setze ihn If Not ThisWorkbook.ActiveSheet.AutoFilterMode = True Then ThisWorkbook.ActiveSheet.Range("A1").AutoFilter End If If AktuellerWert <> "" Then 'Autofilter auf dem Zellwert ThisWorkbook.ActiveSheet.Range(Spalte & ":1").AutoFilter Field:=Spalte, Criteria1:=AktuellerWert, Operator:=xlAnd, VisibleDropDown:=True Else 'Filter wird wieder entfernt ThisWorkbook.ActiveSheet.AutoFilterMode = False End If End Sub
Autofilter einschalten
Sub AutoFilterEinschalten() If Not ActiveSheet.AutoFilterMode = True Then Range("A1").AutoFilter End If End Sub
Speziellen Filter anlegen
Sub RegionFiltern() With Tabelle14 If Not .AutoFilterMode = True Then .Range("A1").AutoFilter End If .Range("A1").AutoFilter Field:=1, Criteria1:="Süd", _ Operator:=xlAnd, VisibleDropDown:=True End With End Sub
- Mit der AutoFilter-Methode wurde der Spalte A (Field:=1) das Anzeigekriterium für Zeilen bekannt gegeben (Criteria1:="Süd"). Bei dem Argument Operator gibt es eine größere Auswahl aus mehreren Konstanten, die Sie der folgenden Tabelle entnehmen können.
Autofilter entfernen
Sub FilterEntfernen() With Tabelle14 .AutoFilterMode = False End With End Sub
Auswahl im Autofilter wird zurückgesetzt
Sub AuswahlImFilterZurücksetzen() With Tabelle14 If Not .AutoFilterMode = True Then .Range("A1").AutoFilter End If .Range("A1").AutoFilter Field:=1 End With End Sub