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

letzte auch unsichtbare Zeile trotz Autofilter ?

Forumthread: letzte auch unsichtbare Zeile trotz Autofilter ?

letzte auch unsichtbare Zeile trotz Autofilter ?
22.09.2004 14:07:45
zacharias
Hallo liebe Leute
ich komme nicht weiter:
Ich will schnell (ohne Schleife) die wirklich letzte Zeile einer Tabelle erkennen auch wenn diese durch Autofilter "ausgeblendet" ist.
So (auch mit specialcells) klappt es nicht
activesheet.Cells(Rows.Count, 1).End(xlUp).Row
da immer nur die letzte sichtbare Zeile genannt wird, obwohl es noch durch den Autofilter "ausgeblendete" Zeilen darunter gibt.
Ich bin wie immer für jeden Hinweis äußerst dankbar.
Euer
Zacharias
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte auch unsichtbare Zeile trotz Autofilter
Reinhard
Hi Zacharias,
solang keine direktere Lösung reinkommt, probiers mal so:
Sub tt() With Worksheets("Tabelle1") .Range("A:A").Copy Destination:=Worksheets("Tabelle2").Range("A1") MsgBox Worksheets("Tabelle2").Range("A65536").End(xlUp).Row End With End Sub
Gruß
Reinhard
letzte benutzte Zeile über Zeilenhöhe finden
Beate
Hallo Zacharias,
höchste belegte Zeilenzahl auch bei ausgeblendeten Zeilen mit Namensdefinition auch ohne VBA:
Einfügen - Name - Definieren - Name: ZH
Bezieht sich auf:
=ZELLE.ZUORDNEN(17;INDIREKT("ZS(-1)";))
Mit ZH wird immer die Zeilenhöhe der LINKEN Nachbarbarzelle ausgelesen (logischerweise identisch mit der Zeilenhöhe der Zelle, in der ZH steht).
Diese Funktion habe ich im Beispiel in Spalte L eingefügt und L1 gibt höchste belegte Zeilenzahl aus. Und in Zelle L1 befindet sich die Formel: =ANZAHL(L:L) und die zählt die Zeilenhöhe 0 mit!
Aber Achtung: Das bloße Ein-und Ausblenden von Zeilen löst keine Neuberechnung aus.
Deshalb ist es günstig, irgendwo die TEILERGEBNIS-Funktion einzubauen, die springt beim Filtern ja an und löst Neuberechnung aus.
Beispieldatei:
https://www.herber.de/bbs/user/11190.xls
Gruß,
Beate
Anzeige
geht auch nur mit ANZAHL
Beate
Hallo Zacharias,
habe gerade gemerkt, dass es ja viel einfacher geht; In beliebige Zelle Zeile 1 im kannst du ANZAHL() einfügen, wenn die Spalte durchgehend bis zur letzten benutzten Zeile ausgefüllt ist, kriegst du auch dann die benutzte Zeilenzahl zurückgegebn, kannst dir also den Umweg über die Zeilenhöhe sparen:
Tabelle1
 K
117
212
847
1030
1179
Formeln der Tabelle
K1 : =ANZAHL(K:K)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß,
Beate
Anzeige
AW: geht auch nur mit ANZAHL
zacharias
Danke Ihr zwei,
Reinhard Deine Lösung hatte ich bereits probiert, liefert aber die letzte sichtbare.
Beate, ich brauche die Letzte Zeile im VBA. Vielleicht hilft mir der Tip trotzdem weiter, da ich ihn möglicherweise über die worksheetfunction nutzen kann.
Auf jeden Fall nochmal vielen Dank für Euren Einsatz.
Schöne Grüße aus Wolfsburg
Zacharias
Anzeige
?
Reinhard
Hi Zacharias,
ich habe in A1:A10 Werte stehen, A11:A65536 ist leer. Die Zeilen von A5 bis A10 blende ich aus.
Dann lass ich mein Makro laufen und es gibt mir wie von dir gewünscht 10 zurück.
Sub tt() With Worksheets("Tabelle1") .Range("A:A").Copy Destination:=Worksheets("Tabelle2").Range("A1") MsgBox Worksheets("Tabelle2").Range("A65536").End(xlUp).Row End With End Sub
Gruß
Reinhard
Anzeige
AW: ?
zacharias
Hallo Reinhard
Du hast Recht, da Excel ja standardmäßig auch die ausgeblendeten mitkopiert,
wirkt die Methode auf alle. Jetzt muß ich nur noch den Umweg über die Kopie
umgehen können, da ich sehr viele Zeilen in der Datei habe.
Hast Du noch eine Idee, ob es auch ohne die Kopie geht ?
Gruß
Zacharias
Anzeige
AW: ?
ypsilon
hi,
zwei möglichkeiten:

Sub testI()
letzte_Zeile = WorksheetFunction.CountA(Range("A:A"))
End Sub


Sub testII()
letzte_Zeile = ActiveCell.CurrentRegion.Rows.Count
End Sub

cu Micha
AW: ?
zacharias
Hallo micha alias ypsilon
1000 Dank Du ahnst nicht wie lange ich schon suche !
Lösung 2 klappt prima.

Sub testII()
letzte_Zeile = ActiveCell.CurrentRegion.Rows.Count
End Sub

Gruß
Zacharias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile in Excel erkennen trotz Autofilter


Schritt-für-Schritt-Anleitung

Um die letzte Zeile einer Tabelle in Excel zu erkennen, selbst wenn einige Zeilen durch den Autofilter ausgeblendet sind, kannst Du folgende VBA-Methode verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub letzteZeileErkennen()
       Dim letzteZeile As Long
       letzteZeile = WorksheetFunction.CountA(Range("A:A"))
       MsgBox "Die letzte Zeile ist: " & letzteZeile
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus. Du erhältst eine Meldung mit der Nummer der letzten Zeile.


Häufige Fehler und Lösungen

  • Problem: Das Makro gibt die letzte sichtbare Zeile zurück.

    • Lösung: Stelle sicher, dass Du die CountA-Funktion für die gesamte Spalte verwendest, um auch ausgeblendete Zeilen zu zählen.
  • Problem: Fehlermeldung beim Ausführen des Makros.

    • Lösung: Überprüfe, ob Du die richtige Tabelle in Deinem VBA-Code angegeben hast. Möglicherweise musst Du Worksheets("DeinTabellenname") anpassen.

Alternative Methoden

Falls Du keine VBA-Programmierung nutzen möchtest, gibt es auch andere Ansätze:

  1. Verwendung von Formeln:

    • Du kannst die Formel =ANZAHL(A:A) in eine Zelle eingeben, um die Anzahl der ausgefüllten Zeilen zu zählen. Diese Methode erfordert jedoch, dass die Spalte kontinuierlich ausgefüllt ist.
  2. Verwendung von Named Ranges:

    • Definiere einen Namen für den Bereich und verwende die Formel =ZELLE.ZUORDNEN(17;INDIREKT("Z1")), um die letzte Zeile zu bestimmen.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die letzte Zeile in Excel ermitteln kannst:

  • Beispiel mit VBA:

    Sub letzteZeileMitKopie()
       With Worksheets("Tabelle1")
           .Range("A:A").Copy Destination:=Worksheets("Tabelle2").Range("A1")
           MsgBox Worksheets("Tabelle2").Range("A65536").End(xlUp).Row
       End With
    End Sub
  • Formelbeispiel:

    • In Zelle B1 kannst Du die folgende Formel eingeben:
      =ANZAHL(A:A)
    • Dies zählt alle benutzten Zellen in Spalte A und gibt die letzte benutzte Zeilennummer zurück.

Tipps für Profis

  • Nutze die TEILERGEBNIS-Funktion in Kombination mit Autofilter, um sicherzustellen, dass Deine Berechnungen immer aktuell sind, wenn Du den Filter anwendest.
  • Experimentiere mit benutzerdefinierten VBA-Funktionen, um spezifische Anforderungen zu erfüllen, wie das Ignorieren von leeren Zellen.

FAQ: Häufige Fragen

1. Wie finde ich die letzte Zeile in einer bestimmten Spalte? Um die letzte Zeile in einer bestimmten Spalte zu finden, kannst Du die CountA-Funktion auf den spezifischen Bereich anwenden, z.B. =ANZAHL(B:B).

2. Warum kann ich die letzte Zeile nicht finden, wenn Zeilen ausgeblendet sind? Das liegt daran, dass Excel standardmäßig nur sichtbare Zeilen zählt. Verwende die oben genannten VBA-Methoden, um auch ausgeblendete Zeilen zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige