gibt es eine Möglichkeit, dass ich das gewählte Filterkriterium in
einer Zelle angezeigt bekomme.
Dachte da z.B. als Überschrift wie:
Daten sortiert nach "Januar".
Danke für Eure Hilfe,
Wolf
Function FilterKriterien(rng As Range) As String
'By Stephen Bullen
Dim Filter As String
Filter = ""
On Error GoTo Finish
With rng.Parent.AutoFilter
If Intersect(rng, .Range) Is Nothing Then GoTo Finish
With .Filters(rng.Column - .Range.Column + 1)
If Not .On Then GoTo Finish
Filter = .Criteria1
Select Case .Operator
Case xlAnd
Filter = Filter & " UND " & .Criteria2
Case xlOr
Filter = Filter & " ODER " & .Criteria2
End Select
End With
End With
Finish:
FilterKriterien = Filter
End Function
Sub FilterAuslesen()
Dim intcol As Integer
Dim strcriteria As String
'Application.Goto Reference:="Kriterien2"
'Selection.ClearContents
'Application.Goto Reference:="Kriterien1"
'Selection.ClearContents
ScreenUpdating = False
Sheets("statistik").Select
Range("a14").CurrentRegion.Select
Selection.ClearContents
Selection.ClearComments
Sheets("DB_PT-Standard").Select
Range("a13").Select
intcol = 1
Do Until IsEmpty(Cells(13, intcol))
With ActiveSheet.AutoFilter.Filters(intcol)
If .On Then
On Error Resume Next
strcriteria = .Criteria1 '& .Criteria2
strcriteria = strcriteria & .Criteria2
'Else
'strcriteria = .Criteria1 Or .Criteria2
On Error GoTo 0
Worksheets("statistik").Cells(14, intcol).Value = strcriteria
End If
End With
intcol = intcol + 1
Loop
Range("a14").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("statistik").Range("a15")
Sheets("statistik").Select
Call Makro1
Range("w15").Select
ActiveWindow.SmallScroll ToRight:=4
ScreenUpdating = True
End Sub
Um die gewählte Filterauswahl in einer Zelle anzuzeigen, kannst Du die folgende benutzerdefinierte Funktion verwenden. Folge diesen Schritten:
Öffne den VBA-Editor:
ALT + F11, um den VBA-Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen > Modul.Füge den Code ein:
Function FilterKriterien(rng As Range) As String
Dim Filter As String
Filter = ""
On Error GoTo Finish
With rng.Parent.AutoFilter
If Intersect(rng, .Range) Is Nothing Then GoTo Finish
With .Filters(rng.Column - .Range.Column + 1)
If Not .On Then GoTo Finish
Filter = .Criteria1
Select Case .Operator
Case xlAnd
Filter = Filter & " UND " & .Criteria2
Case xlOr
Filter = Filter & " ODER " & .Criteria2
End Select
End With
End With
Finish:
FilterKriterien = Filter
End Function
Verwende die Funktion in Excel:
=FilterKriterien(A1), wobei A1 die Zelle ist, in der der Filter gesetzt wurde.Fehler: "Komponente nicht gefunden"
Funktion gibt nichts zurück
Funktion funktioniert nicht in Excel Online
Wenn Du keine VBA-Funktion verwenden möchtest, kannst Du auch den Excel-Datenschnitt verwenden:
Alternativ kannst Du auch die Funktion =TEXTVERKETTEN() nutzen, um mehrere Filterkriterien in einer Zelle zusammenzufassen, falls Du mit den neuesten Excel-Versionen arbeitest.
Beispiel für eine einfache Filterauswahl:
=FilterKriterien(A1) in einer Zelle an: Januar.Beispiel für mehrere Kriterien:
=FilterKriterien(A1): Januar UND Februar.Nutze benannte Bereiche: Um die Lesbarkeit und Wartbarkeit des Codes zu verbessern, kannst Du benannte Bereiche in Excel verwenden.
Erweiterte Filterkriterien: Experimentiere mit komplexeren Filterkriterien in Deiner VBA-Funktion, um spezifischere Daten auszulesen.
Automatisierung: Kombiniere diese Funktion mit anderen Makros, um automatisierte Berichte zu erstellen, die selektive Daten anzeigen.
1. Wie kann ich die Filterkriterien in einer anderen Zelle anzeigen?
Du kannst die Funktion =FilterKriterien(ZielZelle) in jeder Zelle verwenden, um die aktiven Filterkriterien anzuzeigen.
2. Funktioniert dies in allen Excel-Versionen?
Die VBA-Funktion funktioniert nur in der Desktop-Version von Excel. In Excel Online sind Makros nicht unterstützt.
3. Kann ich die Funktion anpassen?
Ja, Du kannst die VBA-Funktion anpassen, um weitere Filterbedingungen hinzuzufügen oder das Format der Ausgabe zu ändern.