AW: Autofilter richtig einsetzen
09.03.2008 22:05:08
dan
Hi,
also hier ein beispiel. Es ist aber nur beispiel, funktionieren wird es nicht ganz! Siehe die comments im code.
' es wird z.B. mit dem Command-button click gestartet...
Private Sub CommandButton1_Clict()
Dim spalte As Integer
Dim criteria As String
spalte = 0
criteria = ""
' die Combo-Werte uebernehmen, Me.ComboBox1.ListIndex gibt die ausgewaehlte zeile zurueck,
' falls nichts ausgewaehlt ist, ist es gleich -1
If (Me.ComboBox1.ListIndex > -1 And Me.ComboBox2.ListIndex > -1) Then
' hier muss es anders sein, da du die spalten-nummer in der Combo1 hast
' und die werte in der Combo2, also wahrscheinlich so:
' >>> criteria = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 0) ?
spalte = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)
criteria = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 0)
' hier werden einfach alle sheets durchgegangen und der
' Filter fuer die 'spalte' gesetzt
Call SetFilterAllSheets(spalte, criteria)
End If
End Sub
Private Sub SetFilterAllSheets(ByVal i_spalte As Integer, ByVal i_criteria As String) ' i_ ... _
wie input parameter
Dim wst As Worksheet
Dim curReg As Range
On Error GoTo SetFilterAllSheets_Error
For Each wst In Worksheets
' damit dies mit der Current Region funzt, musessen deine daten
' in A1 beginnen, duerfen keine leere spalten bzw. leere zeilen enthalten...
Set curReg = wst.Range("a1").CurrentRegion
curReg.AutoFilter Field:=i_spalte, Criteria1:=i_criteria
Next wst
Exit Sub
SetFilterAllSheets_Error:
MsgBox "error in SetFilterAllSheets, " & Err.Description, vbCritical, "Error"
End Sub