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

Forumthread: letzte Zeile ermitteln trotz Autofilter

letzte Zeile ermitteln trotz Autofilter
Reinhard
Hallo Wissende,
man hat eine Tabelle, sie wurde so gefiltert daß auch die unterste Zeile nicht angezeigt wird.
Dann scheiter der Versuch mit Specialcells(...Lastcell) oder .Cells(rows.count,1).end(xlup).row
die unterste belegte Zeile der ungefilterten Tabelle herauszufinden.
Ich fand dazu im Archiv u.a. dieses:
https://www.herber.de/forum/archiv/1220to1224/t1220675.htm
Wenn es nichts besseres gibt, also kürzer, dann gehe ich diesen Weg.
Vielleicht aber gibt es für mein Problem auch eine andere Lösung.
Es liegt eine Tabelle vor wo manuell horizontale Seitenumbrüche eingebracht wurden.
Mit einer Schleife über HPageBreaks kann ich fast alle ermitteln.
Bis auf den letzten untersten. Wie komme ich ermittlungstechnisch an dessen zeilennummer ran?
Gruß ^ Danke
Reinhard
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: letzte Zeile ermitteln trotz Autofilter
21.07.2012 18:02:56
Luschi
Hallo Reinhard,
bei mir funktioniert das bei Excel 2004, 2007 und 2010 so:
MsgBox ActiveSheet.Rows(1).SpecialCells(xlCellTypeLastCell).Row - 1
Gruß von Luschi
aus klein-Paris
AW: letzte Zeile ermitteln trotz Autofilter
21.07.2012 18:22:00
Reinhard
Hallo Luschi,
das hilft mir leider nicht weiter, ist ja so wie ich mit meinen bisherigen Versuchen :-(
Hier die Beispielsmappe um die es geht:
https://www.herber.de/bbs/user/81116.xlsm
Die -1 habe ich eh nicht verstanden aber egal.
Jedenfalls kommt da jetzt wenn ich in A nach 3 gefiltert habe vom Code die 14.
Ich brauche aber die 26 in dem Fall.
Gruß
Reinhard
Anzeige
AW: letzte Zeile ermitteln trotz Autofilter
21.07.2012 19:44:10
Gerd
Hallo Reinhard,
zur nächsten Zeile(nnummer) unter dem Autofilter:
MsgBox ActiveSheet.AutoFilter.Range.Rows.Count + ActiveSheet.AutoFilter.Range.Row
Für die letzte Zeilennummer des Filters müsstest Du 1 abziehen.
Gruß Gerd
AW: letzte Zeile ermitteln trotz Autofilter
24.07.2012 16:21:52
Reinhard
Hallo Gerd,
danke dir, es half mir weiter, ich benutzte Split() für die ActiveSheet.AutoFilter Adresse
und habe so auch die unterste Zeile.
Gruß
Reinhard
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile in Excel ermitteln trotz Autofilter


Schritt-für-Schritt-Anleitung

Um die letzte Zeile einer gefilterten Tabelle in Excel zu ermitteln, kannst Du folgende Schritte befolgen:

  1. Öffne Deine Excel-Datei und stelle sicher, dass die Tabelle gefiltert ist.

  2. Öffne den VBA-Editor (Alt + F11).

  3. Füge ein neues Modul hinzu (Einfügen > Modul).

  4. Verwende den folgenden VBA-Code:

    Sub LetzteZeileErmitteln()
       Dim letzteZeile As Long
       letzteZeile = ActiveSheet.AutoFilter.Range.Rows.Count + ActiveSheet.AutoFilter.Range.Row - 1
       MsgBox "Die letzte Zeile ist: " & letzteZeile
    End Sub
  5. Führe das Makro aus (F5 oder über das Menü).

Mit diesem Code erhältst Du die letzte Zeilennummer der gefilterten Tabelle. Achte darauf, dass Du bei gefilterten Daten die korrekte Zeilennummer erhältst.


Häufige Fehler und Lösungen

  1. Fehler: Falsche Zeilennummer wird angezeigt

    • Lösung: Achte darauf, dass Du den Offset von 1 korrekt anwendest. Wenn Du die Zeilennummer der letzten sichtbaren Zeile brauchst, musst Du die berechnete Zeilennummer anpassen.
  2. Fehler: Makro funktioniert nicht

    • Lösung: Stelle sicher, dass das Makro in einer Datei mit aktivierten Makros gespeichert ist (*.xlsm).

Alternative Methoden

Falls Du kein VBA verwenden möchtest, gibt es auch alternative Methoden:

  • Verwendung von Formeln: Mit der Formel =AGGREGAT(14; 6; A:A) kannst Du die letzte Zeile einer bestimmten Spalte ermitteln, ohne den Autofilter zu beeinflussen.
  • Verwendung von Pivot-Tabellen: Erstelle eine Pivot-Tabelle aus Deinen Daten. Hierbei kannst Du auch gefilterte Daten analysieren und die letzte Zeile ermitteln.

Praktische Beispiele

Angenommen, Du hast eine Tabelle mit Verkaufsdaten und möchtest die letzte Zeile des gefilterten Bereichs ermitteln. Der oben genannte VBA-Code gibt Dir schnell die benötigte Information.

Ein praktisches Beispiel für die Anwendung des Codes könnte so aussehen:

Sub LetzteZeileVerkauf()
    Dim letzteZeile As Long
    letzteZeile = ActiveSheet.AutoFilter.Range.Rows.Count + ActiveSheet.AutoFilter.Range.Row - 1
    MsgBox "Die letzte Verkaufszeile ist: " & letzteZeile
End Sub

Hierbei wird die letzte Zeile der Verkaufsdaten angezeigt, was besonders nützlich ist, wenn Du Daten analysierst.


Tipps für Profis

  • Verwende benannte Bereiche: Dies kann die Handhabung der Daten erleichtern und die Berechnungen vereinfachen.
  • Optimiere Deine VBA-Performance: Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung Deines Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
  • Teste Deinen Code regelmäßig: Um sicherzustellen, dass er auch bei unterschiedlichen Datenanordnungen funktioniert.

FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile, wenn ich mehrere Filter angewendet habe?
Du kannst den gleichen VBA-Code verwenden. Excel berücksichtigt alle aktiven Filter.

2. Ist dieser Ansatz auch in Excel für Mac verfügbar?
Ja, der VBA-Code funktioniert sowohl in Excel für Windows als auch in Excel für Mac.

3. Was mache ich, wenn ich die letzte Zeile ohne Autofilter ermitteln möchte?
Du kannst die Cells(Rows.Count, 1).End(xlUp).Row Methode verwenden, um die letzte Zeile einer nicht gefilterten Tabelle zu ermitteln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige