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