ich habe ein kleines Tool, mit dem ich den Autofilter in einem Tabellenblatt zurück setze:
Sub DoResetAutofilter(wksMySheet As Worksheet, iColFirst As Integer, iColLast As Integer, _
lRowFirst As Long)
'* in case a user used another autofiler, this makro resets the autofilter to where needed.
Dim lRowLast As Long
With wksMySheet
lRowLast = .Cells(Rows.Count, iColFirst).End(xlUp).Row
If .AutoFilterMode Then .Cells.AutoFilter 'Turns OFF Autofilter, if any
.Range(Cells(lRowFirst, iColFirst), Cells(lRowLast, iColLast)).AutoFilter 'Turns ON _
Autofilter on given range
End With
End Sub
Das ganze rufe ich zB so auf:
Call DoResetAutofilter(sheets("Tabelle1"), 2, 4, 8)
(In Tabelle1, entferne den Autofilter, dann setze den Autofilter in den Bereich B8:Dxx wobei xx=letze Zeile)
das funktioniert auch gut, leider nur wenn Tabelle1 zufällig gerade aktiv ist!
Ich behelfe mir momentan mit einem .activate im Code um das ganze aufzurufen:
[Code]
dim wksOld as worksheet
wksOld = activesheet
sheets("Tabelle1").activate
Call DoResetAutofilter(sheets("Tabelle1"), 2, 4, 8)
wksOld.activate
[Code]
Nun die Frage: kann ich das ganze auch OHNE activate, select oder sonstiges realisieren, oder ist dies einer der 0,1% Fälle in denen es ohne activate nicht geht?
Grüße,
Klaus M.vdT.