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

Forumthread: Bei Filter abfrage der ersten Zeilennummer

Bei Filter abfrage der ersten Zeilennummer
28.04.2017 23:21:15
Siegfried
Ich habe 20.0000 Zeilen mit Daten belegt und setzte nun einen Filter auf eine bestimmte Auswahl, daraus ergibt sich als oberste Zeilennummer die 17.397 und als letzte im Filter die Zeile 17674.
die letzte kann frage ich über mit
EndRow = Cells(Rows.Count, 18).End(xlUp).Row
ab wie kann man die erste Zeile des gesetzten Filterbereich abfragen.
Die Zeile mit Nummern 1 ist die nicht verwendete Zeile beim Autofilter
Schön wäre es wenn mir bitte da jemand mit einer Lösung helfen könnte!
Gruß Siegfried
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Filter abfrage der ersten Zeilennummer
28.04.2017 23:43:31
Daniel
Hi
If Rows(2).hidden = false then
StartRow = 2
Else
StartRow = Columns(1).SpecialCells(xlcelltypevisible).Areas(2).Row
End iF

Gruß Daniel
AW: Bei Filter abfrage der ersten Zeilennummer
28.04.2017 23:51:31
onur
Hier ein Beispiel für Spalte A und Zeile 2 bis 65536 - musst du ein bisschen modifizieren:
Dim rng As Range
Dim FirstRow
Set rng = Range("A2", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible)
FirstRow = rng.Rows(1).Row

Anzeige
AW: Bei Filter abfrage der ersten Zeilennummer
29.04.2017 12:20:24
Siegfried
Hi @Daniel und @onur,
DANKE für eure Hilfestellung, habe mir den Vorschlag von Daniel genommen und meinen Bedürfnissen angepasst. Funktioniert bestens kann ich nur sagen!
Gruß Siegfried

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Erste Zeilennummer im gefilterten Bereich abfragen


Schritt-für-Schritt-Anleitung

Um die erste Zeilennummer im gefilterten Bereich abzufragen, kannst du folgenden VBA-Code verwenden. Dieser Code prüft, ob die zweite Zeile sichtbar ist und gibt entsprechend die erste sichtbare Zeile zurück:

Dim StartRow As Long

If Rows(2).Hidden = False Then
    StartRow = 2
Else
    StartRow = Columns(1).SpecialCells(xlCellTypeVisible).Areas(2).Row
End If

Du kannst diesen Code in das VBA-Editor-Fenster von Excel einfügen, um die erste Zeile des gefilterten Bereichs abzufragen.


Häufige Fehler und Lösungen

  • Fehler: "Runtime Error 1004"

    • Lösung: Dieser Fehler tritt häufig auf, wenn der Filter nicht gesetzt ist oder alle Zeilen ausgeblendet sind. Stelle sicher, dass ein Filter aktiv ist und es sichtbare Zellen gibt.
  • Fehler: Falsche Zeilennummer zurückgegeben

    • Lösung: Überprüfe, ob du die richtige Spalte für die SpecialCells-Methode verwendest. In einigen Fällen kann der Code an deine spezifischen Daten angepasst werden müssen.

Alternative Methoden

Eine alternative Methode, um die erste Zeilennummer im gefilterten Bereich zu ermitteln, ist die Verwendung von Range und SpecialCells. Hier ist ein Beispiel:

Dim rng As Range
Dim FirstRow As Long

Set rng = Range("A2", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible)
FirstRow = rng.Rows(1).Row

Diese Methode ist besonders nützlich, wenn du mit großen Datenmengen arbeitest und eine schnelle Lösung benötigst.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit 20.000 Zeilen und möchtest die erste sichtbare Zeile im gefilterten Bereich von Spalte A abfragen. Du kannst den obigen Code verwenden, um die erste Zeilennummer dynamisch zu ermitteln.

Hier ist ein Anwendungsbeispiel:

  1. Setze einen Autofilter auf deine Daten.
  2. Füge den VBA-Code in ein Modul ein.
  3. Führe den Code aus, um die erste Zeilennummer im gefilterten Bereich zu erhalten.

Tipps für Profis

  • Verwende benutzerdefinierte Funktionen: Du kannst eine benutzerdefinierte Funktion erstellen, um die erste sichtbare Zeile zu ermitteln, die du in anderen Excel-Arbeitsmappen wiederverwenden kannst.

  • Nutze Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um unerwartete Situationen zu managen und somit die Stabilität deines VBA-Skripts zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile im gefilterten Bereich abfragen? Du kannst die letzte Zeile ähnlich wie die erste Zeile abfragen, indem du EndRow = Cells(Rows.Count, 18).End(xlUp).Row verwendest.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte jedoch darauf, dass die maximale Zeilenzahl in der verwendeten Version berücksichtigt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige