HERBERS Excel-Forum - das Archiv
aktive Zelle eine Zeile tiefer
Jürgen

Hallo liebe Helferleins,
habe schon die Suche bemüht und das gefunden:
ACTIVECELL.Offset(1, 0).Select
funktioniert an für sich schon, aber...
in dem Blatt in dem ich das anwenden will ist zur zeit der Makroausführung immer ein Autofilter aktiv.
Sprich es sind z.B. die zeilen 2,3,4 ud 5 ausgeblendet.
in zeilen 1 + 6 sind die werte die ich kopieren möchte. wenn ich in zeile 1 bin und obigen befehl ausführe
springt er in zeile 2. nicht das was ich will .
hat einer eine Idee ?
Danke im voraus
Gruß Jürgen

AW: aktive Zelle eine Zeile tiefer
welga

Hallo versuch es mal damit:
Dim a As Boolean
a = False
Do Until a = True
ActiveCell.Offset(1, 0).Activate
If Rows(ActiveCell.Row).Hidden = False Then a = True
Loop
Gruß
welga
AW: aktive Zelle eine Zeile tiefer
Jürgen

Hallo welga,
na da sage ich mal Danke.
Genau das was ich wollte, hatte schon Angst die Frage wäre schlecht formuliert.
Sage nur Merci.
Gruß Jürgen
AW: aktive Zelle eine Zeile tiefer
welga

Hallo versuch es mal damit:
Dim a As Boolean
a = False
Do Until a = True
ActiveCell.Offset(1, 0).Activate
If Rows(ActiveCell.Row).Hidden = False Then a = True
Loop
Gruß
welga
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
AW: Autofilter : Nächste/Vorherige Zelle aktivieren
Jürgen

Danke
auch an Dich !!
Gruß Jürgen