Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

aktive Zelle eine Zeile tiefer | Herbers Excel-Forum


Betrifft: aktive Zelle eine Zeile tiefer von: Jürgen
Geschrieben am: 17.11.2009 11:58:32

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

  

Betrifft: AW: aktive Zelle eine Zeile tiefer von: welga
Geschrieben am: 17.11.2009 12:27:48

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


  

Betrifft: AW: aktive Zelle eine Zeile tiefer von: Jürgen
Geschrieben am: 17.11.2009 12:34:07

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


  

Betrifft: AW: aktive Zelle eine Zeile tiefer von: welga
Geschrieben am: 17.11.2009 12:27:59

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


  

Betrifft: Autofilter : Nächste/Vorherige Zelle aktivieren von: NoNet
Geschrieben am: 17.11.2009 12:46:26

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


  

Betrifft: AW: Autofilter : Nächste/Vorherige Zelle aktivieren von: Jürgen
Geschrieben am: 17.11.2009 13:06:10

Danke

auch an Dich !!

Gruß Jürgen


Beiträge aus den Excel-Beispielen zum Thema "aktive Zelle eine Zeile tiefer"