Autofilter als Funktion ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Autofilter als Funktion ?
von: Matthias
Geschrieben am: 12.05.2002 - 17:01:22

Gibt es eine Funktion, mit der ich die Liste, die im Autofilter angezeigt wird, ausgeben kann ?
Ich bräuchte diese Liste in Form einer Tabelle um die Daten weiter verarbeiten zu können.

nach oben   nach unten

Re: Autofilter als Funktion ?
von: Otto
Geschrieben am: 12.05.2002 - 18:22:02

Hallo Matthias,

vielleicht hilft Dir das weiter:

Option Explicit

Sub Haupt()
   Dim intRow As Integer    
   Dim intSpalte As Integer    
   Dim strFilter As String  
   Dim wksBlatt As Worksheet  
   Dim wksFilter1 As Worksheet  
   Dim wksFilter2 As Worksheet  
   
   Set wksBlatt = Worksheets("Tabelle2")
   Application.ScreenUpdating = False
   If wksBlatt.AutoFilterMode Then  
      With wksBlatt.AutoFilter
         MsgBox "Gefiltert wird der Bereich " & .Range.Address & vbCrLf & _
          "es gibt " & .Filters.Count & " Filterspalten."
         For intSpalte = 1 To .Filters.Count  
            With .Filters.Item(intSpalte)
               If .On Then  
                  If .Operator Then  
                     MsgBox "Spalte " & intSpalte & " filtert nach " & _
                      .Criteria1 & " " & .Operator & " " & .Criteria2
                  Else
                     MsgBox "Spalte " & intSpalte & " filtert nach " _
                      & .Criteria1
                  End If  
               Else
                  MsgBox "Spalte " & intSpalte & " filtert nach nichts."
                  Worksheets.Add
                  .Parent.Range.Columns(intSpalte).Copy _
                   Destination:=Cells(1, 1)
                  Set wksFilter1 = ActiveSheet
                  wksFilter1.Columns(1).AdvancedFilter _
                   Action:=xlFilterInPlace, Unique:=True  
                  Worksheets.Add
                  Set wksFilter2 = ActiveSheet
                  wksFilter1.Columns(1).Copy _
                   Destination:=wksFilter2.Cells(1, 1)
                  Application.DisplayAlerts = False
                  wksFilter1.Delete
                  Application.DisplayAlerts = False
                  strFilter = ""
                  For intRow = 2 To wksFilter2.UsedRange.Rows.Count  
                     strFilter = strFilter & vbCrLf & _
                      wksFilter2.Cells(intRow, 1).Value
                  Next intRow
                  MsgBox "Filtermöglichkeiten in Spalte " & _
                   intSpalte & " sind: " & strFilter
                  Application.DisplayAlerts = False
                  wksFilter2.Delete
                  Application.DisplayAlerts = False
               End If  
            End With  
         Next
      End With  
   End If  
   Application.ScreenUpdating = True
End Sub  

Gruß Otto

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Autofilter als Funktion ?"