Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - letzte Zeile ermitteln

VBA - letzte Zeile ermitteln
WalterK
Hallo,
für die letzte belegte Zeile in Spalte D habe ich folgende Codezeile gefunden:
Zeletzte = Cells(Rows.Count, 4).End(xlUp).Row
Leider werden hier auch die Formelergebnisse "" mitberücksichtigt.
Wie müßte die Codezeile lauten, wenn für die Ermittlung der letzten belegten Zeile auch nur die Zellen
herangezogen werden, in denen als Formelergebnis ein Text oder eine Zahl steht?
Besten Dank für die Hilfe und
Servus, Walter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
ZeLetzte=[LOOKUP(2,1/(D:D<>""),ROW(D:D))] '_oT
09.12.2011 11:55:16
NoNet
_oT = "ohne Text"
AW: ZeLetzte=[LOOKUP(2,1/(D:D<>""),ROW(D:D))] '_oT
09.12.2011 12:06:51
WalterK
Perfekt, Danke NoNet!
Servus, Walter
letzte Zelle mit Inhalt
09.12.2011 12:07:39
Rudi
Hallo,
per UDF:
Function LastRow_oBlanks( _
wks As Worksheet, _
Optional lngFirstRow As Long, _
Optional lngLastRow As Long) _
As Long
'letzte Zeile mit Inhalt, Blanks durch Formeln gelten als leer
Dim lngTmp As Long, blnFound As Boolean
With Application
If .CountBlank(wks.Rows(wks.Rows.Count))  wks.Rows(wks.Rows.Count).Cells.Count Then
LastRow = wks.Rows.Count: Exit Function
End If
If .CountA(wks.Cells) = 0 Then
LastRow = 0: Exit Function
End If
If lngFirstRow = 0 Then lngFirstRow = 1
If lngLastRow = 0 Then lngLastRow = wks.Rows.Count
lngTmp = (lngFirstRow + lngLastRow) / 2
If lngLastRow > lngFirstRow + 1 Then
If .CountBlank(wks.Range(.Rows(lngTmp), .Rows(lngLastRow))) _
 wks.Range(.Rows(lngTmp), .Rows(lngLastRow)).Cells.Count Then
lngFirstRow = lngTmp: blnFound = True
End If
If Not blnFound And .CountBlank(wks.Range(.Rows(lngFirstRow), .Rows(lngTmp)))  _
wks.Range(.Rows(lngFirstRow), .Rows(lngTmp)).Cells.Count Then
lngLastRow = lngTmp
End If
LastRow wks, lngFirstRow, lngLastRow
End If
End With
LastRow = lngFirstRow
End Function

Gruß
Rudi
Anzeige
@Rudi : Wie war das nochmal ;-)) *fgfg*
09.12.2011 12:14:12
NoNet
So - oder doch nicht so ?
Salut, NoNet
Ich weiß ja, ...
09.12.2011 12:31:47
Rudi
Hallo,
.... dass du es gerne gemütlich hast. Aber das muss sich doch nicht so auswirken, dass du grottenlahme Codes benutzt.
Meine UDF ist bei 10.000 Durchläufen gut 15 Sek. schneller! ;-)
Gruß
Rudi

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige