30.05.2018, 12:02
Du hast nichts "falsch" gemacht, du hast schlicht "nichts" gemacht. Der Code an sich steht mal nur da und wenn er nicht manuell (wie zB durch F5) ausgeführt wird, passiert gar nichts. Du hast nun folgende Möglichkeiten:
- Du fügst einen Button im Tabellenblatt ein und verknüpfst den mit dem Makro. Dann musst du nach dem Setzen des Autofilters noch auf den Button klicken, damit der Code ausgeführt wird.
oder
- Schreibe den Code wie folgt
Dazu musst du noch irgendwo, wo es nicht stört, im Tabellenblatt die Formel =TEILERGEBNIS(3;A:A) hinterlegen (Achtung, die Formel selbst nicht in Spalte A einfügen, sonst gibt es einen Zirkelbezug).
Hintergrund ist, dass nun bei jeder Neuberechnung vom Teilergebnis auch der Code ausgeführt wird. Und die Neuberechnung erfolgt jedesmal, wenn du die Tabelle filterst bzw. den Filter aufhebst.
- Du fügst einen Button im Tabellenblatt ein und verknüpfst den mit dem Makro. Dann musst du nach dem Setzen des Autofilters noch auf den Button klicken, damit der Code ausgeführt wird.
oder
- Schreibe den Code wie folgt
Code:
Private Sub Worksheet_Calculate()
Dim lngRow As Long
For lngRow = 15 To Cells(15, 1).End(xlDown).Row
If Not Rows(lngRow).Hidden Then Exit For
Next
Sheets("DeinBlattname").Range("BO4").Value = CStr(lngRow)
End Sub
Dazu musst du noch irgendwo, wo es nicht stört, im Tabellenblatt die Formel =TEILERGEBNIS(3;A:A) hinterlegen (Achtung, die Formel selbst nicht in Spalte A einfügen, sonst gibt es einen Zirkelbezug).
Hintergrund ist, dass nun bei jeder Neuberechnung vom Teilergebnis auch der Code ausgeführt wird. Und die Neuberechnung erfolgt jedesmal, wenn du die Tabelle filterst bzw. den Filter aufhebst.
Schöne Grüße
Berni
Berni