Excel VBA - Anwendungen
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Filtern
Autofilter und Formular (bei leerer Zelle)
s. a. http://excelbibel.de/datenformular-excel/
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 'Formular/Maske ActiveSheet.ShowDataForm End If End Sub
Filter entfernen
'Filter setzen, bzw. entfernen, wenn vorher aktiv Sub Filter() Tabelle1.Range("A1").AutoFilter End Sub
Spalten filtern nach einem Wert mit Doppelklick
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim Spalte Dim AktuellerWert As String 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 'Autofilter auf dem Zellwert ThisWorkbook.ActiveSheet.Range(Spalte & ":1").AutoFilter Field:=Spalte, Criteria1:=AktuellerWert, Operator:=xlAnd, VisibleDropDown:=True End Sub
Bearbeitungsdatum nach "Heute" und "Gestern" filtern
'Es wird ein Filter auf das Systemdatum gesetzt 'Also zeige mir alle Tickets, die heute bearbeitet wurden Sub DatumHeute() Dim str_datum As String str_datum = Date If Not Tabelle1.AutoFilterMode = True Then Tabelle1.Range("F1").AutoFilter End If Tabelle1.Range("F1").AutoFilter Field:=6, Criteria1:=str_datum, Operator:=xlAnd, VisibleDropDown:=True End Sub
und
'Zeige mir alle Tickets, die gestern bearbeitet wurden Sub DatumGestern() Dim str_datum As String str_datum = Date - 1 If Not Tabelle1.AutoFilterMode = True Then Tabelle1.Range("F1").AutoFilter End If Tabelle1.Range("F1").AutoFilter Field:=6, Criteria1:=str_datum, Operator:=xlAnd, VisibleDropDown:=True End Sub
Filter setzen auf 'X'
'Filter auf X auf Feld A. (Aktiv) Sub FilterX() If Not Tabelle1.AutoFilterMode = True Then Tabelle1.Range("H1").AutoFilter End If Tabelle1.Range("H1").AutoFilter Field:=8, Criteria1:="X", _ Operator:=xlAnd, VisibleDropDown:=True End Sub
Datei speichern ohne Hinweis und Schließen
'Listing 7.4.: Beim Schließen der Mappe Automatisch speichern ohne Rückfrage 'Held VBA, S. 195 Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayAlerts = False ThisWorkbook.Save ThisWorkbook.Close End Sub