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

Forumthread: VBA Letzte Zeile trotz Formel

VBA Letzte Zeile trotz Formel
29.08.2014 12:00:27
Pochi
Hallo Leute,
ich verzweifle gerade an einem eigentlich total simplen Problem: Ich versuche die letzte Zeile _ in einer Tabelle zu ermitteln. Allerdings sind die Zeilen in der Spalte die durchsucht werden soll mit einer Formel gefüllt, die mit einer wenn-Prüfung ein "" ausgeben wenn die Bedingung nicht erfüllt ist. Die Zellen sind also keinesfalls leer (sondern nur scheinbar), das obligatorische

LetzteZeile = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

funktioniert also leider nicht.
Gibt es die Möglichkeit auf den tatsächlichen Wert der zelle zu schauen. Im Notfall könnte ich auch anstatt von "" bspw. "0" in meiner Wenn-Formel angeben...
Dank euch! :)
Pochi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Letzte Zeile trotz Formel
29.08.2014 12:09:53
Hajo_Zi
ich habe mal was erstellt für Druckbereich.
Option Explicit                                     ' Variablendefinition erforderlich
Sub Drucken1()
'* H. Ziplies                                  *
'* 13.10.03; 11.06.05; 02.10.05                *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
' Formel ist in Spalte I
Dim LoI As Long                                 ' Schleifenvariable
Dim LoLetzte As Long                            ' Variable für letzte Zeile
' letzte Zeile unabhängig von Excelversion für Spalte I (9)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 9)), _
Cells(Rows.Count, 9).End(xlUp).Row, Rows.Count)
For LoI = LoLetzte To 2 Step -1
If Cells(LoI, 9)  Empty Then Exit For
Next LoI
' Druckbereich festlegen
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$" & LoI
ActiveSheet.PrintOut                            ' Tabelle drucken
End Sub

Anzeige
AW: VBA Letzte Zeile trotz Formel
29.08.2014 12:12:15
yummi
Hallo Pochi,
versuch mal
llast = Worksheets("Sheet1").Columns(ispalte).Find(what:="?*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
Gruß
yummi

AW:oder so
29.08.2014 12:24:18
hary
Moin
LetzteZeile = [=LOOKUP(2,1/(Sheet1!A:A""),ROW(A:A))]

gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA zur Ermittlung der letzten Zeile trotz Formel


Schritt-für-Schritt-Anleitung

Um die letzte Zeile in einer Excel-Tabelle zu ermitteln, in der die Zellen mit Formeln gefüllt sind (und diese Formeln nur leere Strings zurückgeben), kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Sub LetzteZeileErmitteln()
       Dim letzteZeile As Long
       letzteZeile = Worksheets("Sheet1").Columns(1).Find(what:="?*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
       MsgBox "Die letzte Zeile mit Daten ist: " & letzteZeile
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um die letzte Zeile zu ermitteln.


Häufige Fehler und Lösungen

Problem: Das Makro funktioniert nicht oder gibt einen Fehler aus.
Lösung: Stelle sicher, dass die Spalte, in der du suchst, Werte enthält, die nicht als leere Strings zurückgegeben werden. Verwende die .Find-Methode wie oben gezeigt, um nur echte Werte zu finden.

Problem: Das Ergebnis ist nicht, was ich erwartet habe.
Lösung: Überprüfe die Formel in den Zellen. Wenn sie immer "" zurückgibt, kannst du sie anpassen, um z.B. 0 zurückzugeben oder eine andere Bedingung zu setzen.


Alternative Methoden

Wenn du die letzte Zeile ohne VBA ermitteln möchtest, kannst du die folgende Formel verwenden:

=LOOKUP(2, 1/(Sheet1!A:A<>""), ROW(A:A))

Diese Formel durchsucht die gesamte Spalte A und gibt die letzte Zeilennummer zurück, die einen Wert enthält. Dies ist eine nützliche Methode, wenn du Excel letzte Zeile ermitteln ohne VBA bevorzugst.


Praktische Beispiele

  1. Ermittlung der letzten Zeile aus einer Spalte mit Formeln:

    Angenommen, die Spalte A enthält Formeln, die leere Strings zurückgeben, kannst du das VBA-Skript nutzen, um die letzte Zeile zu finden, oder die oben genannte Formel in eine Zelle eingeben.

  2. Drucken eines Bereichs basierend auf der letzten Zeile:

    Mit dem folgenden VBA-Skript kannst du den Druckbereich entsprechend der letzten Zeile einstellen:

    Sub DruckenLetzteZeile()
       Dim LoLetzte As Long
       LoLetzte = Worksheets("Sheet1").Columns(1).Find(what:="?*", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious).Row
       ActiveSheet.PageSetup.PrintArea = "$A$1:$A$" & LoLetzte
       ActiveSheet.PrintOut
    End Sub

Tipps für Profis

  • Nutze die .UsedRange-Eigenschaft, um die Leistung zu verbessern, wenn du mit sehr großen Datenmengen arbeitest.
  • Überprüfe deine Formeln vor der Ausführung, um sicherzustellen, dass sie die erwarteten Werte zurückgeben.
  • Teste dein VBA-Skript in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile in einer anderen Spalte ermitteln?
Ändere einfach die Spaltenreferenz in den VBA- oder Formelbeispielen entsprechend.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die Methoden funktionieren in den meisten aktuellen Excel-Versionen, solange du VBA verwenden kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige