Header beim Autofilter ausschalten
#1
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?
Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
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
Top
#4
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
Top
#5
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.
Top
#6
Hi!
z.B. so:
Debug.Print Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Count

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Hallo,

(19.02.2016, 14: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
Top
#8
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
Top
#9
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste