Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer

Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
manasse
Hallo zusammen,
ich habe eine gefilterte Tabelle mit Autofilter und Überschriftszeile (Zeile 1). Nun steht der Coursor in Feld A1 -in der Überschrift- und ab Zeile zwei fängt die gefilterte Tabelle an.
Nun möchte ich per Makro eine Zelle tiefer gehen, in das darunterliegende sichtbare Feld, dass mit der Filterung angezeigt wird. Dies muss natürlich nicht Feld A2 sein, sondern vielleicht A25.
Mit der Sprunganweisung "ActiveCell.Offset(1, 0).Select" springt der Coursor aber auf die tatsächlich nächste vorhandene Zelle, also A2. Ich möchte aber auf die nächste sichtbare (aufgrund des gesetzten Filters sichtbare) Zelle (Beispiel A25) springen.
Kennt jemand dazu eine Lösung?
Auch hier bin ich für jegliche Hilfe dankbar.
Gruß und Dank
Manasse
Anzeige
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 13:19:41
Timo
Hallo Manasse,
wenn Du das Filterkriterium kennst, bzw. im Makro abbilden kannst, würde ich einfach per "find" die nächste anzuspringende Zeile ermitteln und diese dann direkt anspringen.
Ich hoffe das war verständlich.
Gruß
Timo
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 13:28:59
manasse
Hallo Timo,
leider ist die nächste sichtbare Zelle ja nach Download eine andere. Daher immer unbekannt. Hilft also nicht wirklich weiter.
Trotzden danke für den Tipp
Gruß
Manasse
Anzeige
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 13:34:30
fcs
Hallo manasse,
Nakro schaut etwa wie folgt aus.
Gruß
Franz
Sub NaechsteSichtbareZeileSelectieren()
Dim Zeile As Long
Zeile = ActiveCell.Row
With ActiveSheet
Do
Zeile = Zeile + 1
Loop Until Rows(Zeile).Hidden = False
Cells(Zeile, 1).Select
End With
End Sub

Anzeige
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 14:58:32
manasse
Hallo,
Suuuuuuuuuuuuuuuper!!!
Es klappt einwandfrei. Toller Tipp der mir gigantische Arbeit abnimmt. Recht herzlichen Dank!!
Gruß
Manasse
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 14:33:28
Ralf_P
Hallo,
diesen Code in ein Modul:
Public iRow As Long
Public counter As Long

Sub NaechsteAutoFilterZeile()
Dim iRowT As Long
counter = counter + 1
If counter > 1 Then
iRow = iRow + 1
Else
iRow = 2
End If
Do Until IsEmpty(Cells(iRow, 1))
If Rows(iRow).Hidden = False Then
iRowT = iRow
Exit Do
End If
iRow = iRow + 1
Loop
If iRowT = 0 Then
iRow = 0
counter = 0
Exit Sub
Else
Cells(iRowT, 1).Select
End If
End Sub
Es werden die sichtbaren Zellen angewählt - nach der letzten - wieder die erste.
Gruß Ralf
Anzeige
AW: Sprunganweisung (Makro): 1 sichtbare Zelle tiefer
04.11.2010 14:51:11
manasse
Hallo Ralf,
ich habe den Code "Sub NaechsteAutoFilterZeile()" in ein Modul eingegeben und das Makro laufen lassen. Es passiert nichts. Allerdings weiß ich nicht, wo die Anweisungen "Public iRow As Long" und "Public counter As Long" hinkopiert werden müssen.
Kannst Du noch mal einen Tipp geben?
Gruß Manasse
Anzeige
Besten Dank. Ich habe eine Lösung
04.11.2010 15:00:29
manasse
Hallo Ralf,
mach Dir keine Mühe mehr. Ich habe eine Lösung bekommen.
Besten Dank
Manasse
AW: Besten Dank. Ich habe eine Lösung
04.11.2010 15:21:17
Ralf_P
trotzdem ;-)
Du hättest die Anweisungen "Public iRow As Long" und "Public counter As Long" mit in das Modul kopieren sollen.
VG Ralf
AW: Besten Dank. Ich habe eine Lösung
04.11.2010 15:37:41
manasse
Hallo Ralf,
jetzt hab ich es noch mal ausprobiert und komplett ins Modul eingefügt. Klappt prima und ich werde diese Lösung in meine persönliche Formelsammlung aufnehmen.
Ganz herzlichen Dank
VG Manasse
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sprunganweisung in Excel: Zum nächsten sichtbaren Feld mit Makros


Schritt-für-Schritt-Anleitung

Um in einer gefilterten Excel-Tabelle mit einem Makro zur nächsten sichtbaren Zelle zu springen, kannst Du folgenden VBA-Code verwenden:

Sub NaechsteSichtbareZeileSelectieren()
    Dim Zeile As Long
    Zeile = ActiveCell.Row
    With ActiveSheet
        Do
            Zeile = Zeile + 1
        Loop Until Rows(Zeile).Hidden = False
        Cells(Zeile, 1).Select
    End With
End Sub
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den obigen Code in das Modul.
  4. Schließe den VBA-Editor und kehre zu Deinem Excel-Dokument zurück.
  5. Setze den Cursor in die Zelle, von der aus Du springen möchtest.
  6. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Häufige Fehler und Lösungen

  • Problem: Das Makro springt zu einer anderen (nicht sichtbaren) Zelle.

    • Lösung: Stelle sicher, dass Du den Cursor in einer Zelle positionierst, die sich über der gefilterten Tabelle befindet. Das Makro funktioniert nur, wenn es von einer sichtbaren Zelle aus gestartet wird.
  • Problem: Der Code funktioniert nicht.

    • Lösung: Überprüfe, ob Du den gesamten Code korrekt in das Modul eingefügt hast. Vergewissere Dich auch, dass Du das richtige Arbeitsblatt aktiviert hast.

Alternative Methoden

Eine andere Möglichkeit, zur nächsten sichtbaren Zelle zu springen, besteht darin, den folgenden alternativen Code zu verwenden:

Public iRow As Long
Public counter As Long

Sub NaechsteAutoFilterZeile()
    Dim iRowT As Long
    counter = counter + 1
    If counter > 1 Then
        iRow = iRow + 1
    Else
        iRow = 2
    End If
    Do Until IsEmpty(Cells(iRow, 1))
        If Rows(iRow).Hidden = False Then
            iRowT = iRow
            Exit Do
        End If
        iRow = iRow + 1
    Loop
    If iRowT = 0 Then
        iRow = 0
        counter = 0
        Exit Sub
    Else
        Cells(iRowT, 1).Select
    End If
End Sub

Diese Methode ermöglicht es Dir, zwischen sichtbaren Zellen in einer gefilterten Tabelle zu navigieren, was besonders nützlich ist, wenn Du mehrere Filter anwendest.


Praktische Beispiele

  1. Anwendung des Makros: Stelle Dir vor, Du hast eine Liste von Verkaufsdaten gefiltert nach Region. Wenn Du den Cursor auf den ersten sichtbaren Datensatz setzt und das Makro ausführst, springt es zur nächsten sichtbaren Zelle, die die Verkaufszahlen für die nächste Region anzeigt.

  2. Benutzung in Formularen: Du kannst dieses Makro auch in Formularen verwenden, um die Benutzerführung zu verbessern, indem Du sicherstellst, dass sie immer zu den relevanten Daten springen.


Tipps für Profis

  • Fehlerbehebung: Wenn das Makro nicht wie erwartet funktioniert, teste es schrittweise, indem Du den Code in der VBA-Umgebung debuggen lässt.
  • Makros speichern: Denke daran, Deine Excel-Datei im .xlsm-Format zu speichern, um sicherzustellen, dass die Makros erhalten bleiben.
  • Verwendung von Shortcuts: Du kannst auch eigene Tastenkombinationen für Deine Makros definieren, um den Zugriff zu erleichtern.

FAQ: Häufige Fragen

1. Wo kann ich den VBA-Editor in Excel finden? Um den VBA-Editor zu öffnen, drücke ALT + F11.

2. Kann ich die Codes anpassen? Ja, Du kannst die Codes anpassen, um weitere Funktionen hinzuzufügen oder die Logik zu ändern, je nach Deinen spezifischen Anforderungen.

3. Funktioniert das Makro in allen Excel-Versionen? Das Beispiel funktioniert in Excel-Versionen, die VBA unterstützen, wie Excel 2010, 2013, 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige