Autofilter : Nächste/Vorherige Zelle aktivieren
NoNet
Hallo Jürgen,
wenn alle Zelle der Spalte gefüllt sind (zumindest die relevante Spalte !), dann könnte man das evtl. so lösen :
Sub AutofilterNaechsteZelle()
Dim rngZelle As Range, rngBereich As Range, bolAktiv As Boolean
Set rngBereich = Intersect(ActiveCell.EntireColumn, _
ActiveCell.Resize(Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row - _
ActiveCell.Row + 1), Cells.SpecialCells(xlCellTypeVisible))
For Each rngZelle In rngBereich
If bolAktiv = True Then
bolAktiv = False
rngZelle.Select
'MsgBox ActiveCell.Address 'Adresse der Zelle ausgeben
Else
If rngZelle.Address = ActiveCell.Address Then
bolAktiv = True
End If
End If
Next
End Sub
Sub AutofilterVorherigeZelle()
Dim rngZelle As Range, rngBereich As Range, rngAlteZelle As Range
Dim bolAktiv As Boolean
Set rngBereich = Intersect(ActiveCell.EntireColumn, _
ActiveCell.End(xlUp).Resize(ActiveCell.Row - ActiveCell.End(xlUp).Row + 1), _
Cells.SpecialCells(xlCellTypeVisible))
Set rngAlteZelle = ActiveCell
For Each rngZelle In rngBereich
If bolAktiv = True Then
bolAktiv = False
rngAlteZelle.Select
'MsgBox ActiveCell.Address 'Adresse der Zelle ausgeben
Else
If rngZelle.Address = ActiveCell.Address Then
bolAktiv = True
Else
Set rngAlteZelle = rngZelle
End If
End If
Next
If bolAktiv Then
rngAlteZelle.Select
'MsgBox ActiveCell.Address 'Adresse der Zelle ausgeben
End If
End Sub
Der Vorteil : Es werden tatsächlich nur die sichtbaren Zellen durchlaufen, wodurch die Performance bei grossen Listen steigt.
Gruß, NoNet