Clever-Excel-Forum

Normale Version: Header beim Autofilter ausschalten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe VBA Gemeinde,

habe bei folgenden Code:
Code:
Sub Filterdemo()
Dim v As Variant

v = Array(1, 0, 1, 1, 1, 4, 3, 4, 6, 4, 2, 1, 4, 4, 4, 4, 5, 7, 4)
Debug.Print UBound(v)
Range("A1:A" & UBound(v)) = Application.Transpose(v)
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="4"

End Sub


Wie schaffe ich es, dass der Header, also hier die erste Zeile A1 beim Einschalten des Autofilters nicht mit ausgewählt wird?
Hallo!
Zum Filter gehört auch eine Überschrift, sonst macht das doch keinen Sinn?
Code:
Sub Filterdemo()
Dim v As Variant

v = Array(1, 0, 1, 1, 1, 4, 3, 4, 6, 4, 2, 1, 4, 4, 4, 4, 5, 7, 4)
Debug.Print UBound(v)
Range("A1") = "Spalte A"
Range("A2:A" & UBound(v) + 1) = Application.Transpose(v)
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="4"

End Sub

Gruß Ralf
Hallo,

den Header ausschalten (Codefragment, vorher erstmal was mit dem Autofilter auswählen):
Code:
Sub OhneHeader()
Dim rng as Range

With ActiveSheet

Set rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
 
rng.Select

'Test: Alle Zeilennummern anzeigen, die durch Autofilter selektiert wurden
For Each Cell In Selection
Debug.Print Cell.Row
Next Cell

End With

End Sub
Hallo,

Code:
Sub Filterdemo()
 Dim v As Variant
 'Columns(1).Delete
 v = Array(1, 0, 1, 1, 1, 4, 3, 4, 6, 4, 2, 1, 4, 4, 4, 4, 5, 7, 4)
 With Range("A2").Resize(1 + UBound(v) - LBound(v))
   .Value = Application.Transpose(v)
   .AutoFilter Field:=1, Criteria1:="4"
 End With
End Sub

Gruß Uwe
Vielen Dank schon mal für eure Lösungen.

Ich suche jetzt noch nach einer Methode/Funktion wie ich die Anzahl der durch den Autofilter selektierten Zellen bestimmen kann.
Hi!
z.B. so:
Debug.Print Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Count

Gruß Ralf
Hallo,

(19.02.2016, 13:55)Nutella schrieb: [ -> ]Ich suche jetzt noch nach einer Methode/Funktion wie ich die Anzahl der durch den Autofilter selektierten Zellen bestimmen kann.

Code:
Sub Filterdemo()
  Dim v As Variant
  Columns(1).Delete
  v = Array(1, 0, 1, 1, 1, 4, 3, 4, 6, 4, 2, 1, 4, 4, 4, 4, 5, 7, 4)
  With Range("A2").Resize(1 + UBound(v) - LBound(v))
    .Value = Application.Transpose(v)
    .AutoFilter Field:=1, Criteria1:="4"
    Debug.Print "Anzahl Treffer: " & .SpecialCells(xlCellTypeVisible).Count - 1
  End With
End Sub

Gruß Uwe
Das übliche Selection.Count dürfte es auch tun
Code:
Sub OhneHeader()
Dim rng as Range

With ActiveSheet

Set rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
 
rng.Select
Debug.Print "Anzahl ausgewählter Zellen " & Selection.Count

End With

End Sub
Hallöchen,

schöne Lösung,

Hier noch etwas eingekürzt
Code:
Sub OhneHeader()
With ActiveSheet.AutoFilter.Range
  Debug.Print .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Count
End With
End Sub