Clever-Excel-Forum

Normale Version: VBA letzte gefüllte Zeile (Formeln nicht berücksichtigen)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich hoffe ihr könnt mir wieder mal weiterhelfen.
Ich habe eine Datei in der bis Zeile 10.000 Formeln enthalten sind (aus Puffergründen weil die "Quelldatei" noch wächst).
Tatsächlich gefüllt (also mit Werten) sind dann nur ca. 2.000 Zeilen in der Quelldatei.

Ansonsten ermittle ich immer folgendermaßen die letzte Zeile:

Code:
loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)

In diesem Fall gibt mir das aber 10.000 zurück. Gibt es eine Möglichkeit tatsächlich nur die gefüllten Zeilen zu ermitteln?

Über diese Formel klappt es, aber ich würde das gern via VBA machen:

=MAX(WENN(ISTZAHL(VERGLEICH({"".-1E+307};A:A;-1));VERGLEICH({"".-1E+307};A:A;-1)))

Vielen Dank und lg

Olli
Hi Olli,

(20.08.2015, 14:10)friedensbringer schrieb: [ -> ]Über diese Formel klappt es, aber ich würde das gern via VBA machen:
=MAX(WENN(ISTZAHL(VERGLEICH({"".-1E+307};A:A;-1));VERGLEICH({"".-1E+307};A:A;-1)))

wenn ich wissen will, wie so was per VBA gemacht wird, dann kopiere ich die Formel in die Zwischenablage, starte die Makro-Aufzeichnung, kopiere die Formel in eine Zelle und beende die Aufzeichnung.

Nun siehst Du, wie die Formel in VBA heißt, diese Zeile kannst Du nun in Deinen Originalcode einfügen.
Hallo Olli,

vielleicht auch so? http://www.clever-excel-forum.de/thread-...l#pid22008

Gruß Uwe
(20.08.2015, 14:10)friedensbringer schrieb: [ -> ]=MAX(WENN(ISTZAHL(VERGLEICH({"".-1E+307};A:A;-1));VERGLEICH({"".-1E+307};A:A;-1)))

Hi Olli, warum hast du dir gerade die komplizierte Formel rausgesucht..?
Hallo,

1. wenn Du Deinen Wertebereich als Tabelle festschreibst, dann werden die Formeln in jede neue Zeile übertragen (STRG+T)
2. wenn Du auf leer prüfst, dann wird das nie was, da eine Zelle mit "" nicht leer ist. Wenn in den vorhergehenden Zeilen keine Zelle mit "" steht, könntest Du mit evtl. mit Find arbeiten, habe ich aber nicht getestet.
3. mit Formel kannst Du einfach mit VERWEIS oder VERGLEICH prüfen:

Code:
=verweis(9;1/(A:A<>"");Zeile(A:A))
=VERGLEICH("";A:A;0)
(20.08.2015, 14:53)BoskoBiati schrieb: [ -> ]Hallo,
...
Code:
=VERGLEICH("";A:A;0)

Hallo Edgar, der VERGLEICH() hinkt... bei mir kommt da #NV...

... bei Text geht..:  =VERGLEICH("";A:A;-1)

... bei Zahlen ..: =VERGLEICH(-9^9;A:A;-1)

Oder eben der VERWEIS()...
Hallo Jörg,

wenn ich davon ausgehe, dass der TE 10000 Zeilen mit Formeln befüllt hat, die erst einmal "" als Ergebnis bringen, dann sollte es kein #NV geben.
Hallo zusammen,

vielen Dank für eure Vorschläge - werde einmal versuchen was ich davon am ehesten verwenden kann.

lg

Olli
Hallo Ralf,
Für die Formelaufzeichnung reicht es schon, in die Bearbeitungszeile zu gehen und ENTER zu drücken. Der TE hatte ja schon eine funktionierende Formel irgendwo drin. Wenn nicht, passt der Ansatz mit dem Kopieren natürlich.