Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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)
Antworten 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
Antworten 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
Antworten 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.
Antworten 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)
Antworten Top
#7
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
Antworten 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
Antworten 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)
Antworten Top


Gehe zu:


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