Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Autofilter

1 view
Skip to first unread message

Christian Schreiber

unread,
Feb 13, 2001, 1:45:32 PM2/13/01
to
Hallo NG!

Kurze Frage: Gibt es eine Möglichkeit, per VBA festzustellen, ob in
irgendeiner Spalte gerade Autofilter-Kriterien gesetzt sind? (Es soll nicht
festgestellt werden, ob der Autofilter-Modus eingeschaltet ist oder nicht.)

Danke für die Hilfe.

Chris


Thomas Schindzielorz

unread,
Feb 13, 2001, 2:58:13 PM2/13/01
to
On Tue, 13 Feb 2001 19:45:32 +0100, "Christian Schreiber" <s...@surfeu.at>
wrote:

Hallo Chris,

probier mal:

'------------------------------------------
Dim f As Filter

For Each f In ActiveSheet.AutoFilter.Filters
If f.On Then
Beep
End If
Next
'------------------------------------------


Viele Grüße

Thomas Schindzielorz

--------------------------------------------------------
Bytes & More tho...@bytesandmore.de
Todtglüsinger Str. 16 http://www.bytesandmore.de
21 255 Tostedt
04182-404 770 Fax: 04182-404 695
--------------------------------------------------------

Robert Feldmann

unread,
Feb 13, 2001, 3:19:31 PM2/13/01
to
Hallo Christian,

lange Antwort:

Sub Auswertdaten()
Dim gf(24) 'Hier die Anzahl der zu prüfenden Spalten angeben.
Dim zähler
Dim inhalt1
Dim inhalt2
inhalt1 = ""
inhalt2 = ""
Dim Kriterien, i
Kriterien = ""
If Sheets("Daten").FilterMode Then
With Sheets("Daten").AutoFilter
For i = 1 To .Range.Columns.Count
If .Filters(i).On Then
' If .Filters(i).Criteria1 > " " Then
inhalt1 = .Filters(i).Criteria1
If inhalt1 > "" Then
zähler = zähler + 1
' gf(i) = " " & .Filters(i).Criteria1
gf(i) = " " & inhalt1
Kriterien = Kriterien & .Range.Cells(1, i).Text & _
inhalt1 & Chr(13)
End If
inhalt1 = ""
' End If
On Error Resume Next
' If .Filters(i).Criteria2 > " " Then
inhalt2 = .Filters(i).Criteria2
If inhalt2 > "" Then
zähler = zähler + 1
' gf(i) = gf(i) & " " & .Filters(i).Criteria2
gf(i) = gf(i) & " " & inhalt2
Kriterien = Kriterien & .Range.Cells(1, i).Text & _
inhalt2 & Chr(13)
inhalt2 = ""
End If
' End If
End If
Next
End With
If Kriterien <> "" Then Kriterien = _
Left(Kriterien, Len(Kriterien) - 1)
End If
If zähler > 5 Then
x = "Sie haben mehr als 5 Filterkriterien eingestellt." & Chr(13)
& _
"Bitte prüfen Sie den unteren Seitenrand." & Chr(13) & _
"Ziehen Sie ggf. den Fußzeilenbereich größer"
MsgBox x
End If
Sheets("Daten").PageSetup.LeftFooter = Kriterien
End Sub

Sub filteraus()
Dim Kriterien, i
Kriterien = ""
If Sheets("Daten").FilterMode Then
With Sheets("Daten").AutoFilter
For i = 1 To .Range.Columns.Count
If .Filters(i).On Then
Selection.AutoFilter Field:=i
End If
Next
End With
End If
End Sub


Christian Schreiber schrieb:

--
bis dann,
Robert

Nicht was Du sagst ist entscheidend,
sondern was verstanden wird.

0 new messages