Clever-Excel-Forum

Normale Version: Letzte gefüllte Zeile in einem BEstimmten Bereich!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich suche eine Möglichkeit die letzte befüllte Zeile in einem bestimmten Bereich zu finden, berücksichtig werden soll aber nur das was in Spalte D-AD steht. Das will mir nicht gelingen.
Im Augenblick verwende ich die Abfrage nur in einer Spalte mit: ZeileMax = Cells(Rows.Count, 6).End(xlUp).Rows.Row
Habe erfolglos versucht in die Abfrage eine Range einzubauen, aber was ich auch Versucht habe, der Wert der mir in "ZeileMax" zurückgeliefert wurde war immer 1, sobald ich versucht habe mit Range zu arbeiten.
Habe auch versucht die Abfrage in ein With zu packen, so wie "SpalteMin" unten im Code, aber auch hier bekomm ich immer den Wert 1 zurück egal wo die letzte Zeile ist.

"UsedRange" klappt ebenfalls nicht, da er hier auch Formatierungen mitzählt und ich nicht das ganze Sheet durchsuchen darf, da ich sonst unbrauchbare Werte bekomme.

Was gibts da für Möglichkeiten, die letzte Zeile nur von Spalte D bis AD zu ermitteln?







Code:
Dim rng As Range
Dim ZeileMin As Long
Dim SpalteMin As Long
Dim SpalteMax As Long
Dim ZeileMax As Long
Dim Bereich As Range
Dim Auswahl As Range


 With Sheets("Sverweis-Auswahl")
 For Each rng In .Range("D6:Y50")
 If Not IsEmpty(rng) Then Exit For
 Next

 SpalteMin = rng.Column
 'ZeileMin = rng.Row

 End With


SpalteMax = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
ZeileMax = Cells(Rows.Count, 6).End(xlUp).Rows.Row
ZeileMin = Range("d:y").SpecialCells(xlCellTypeConstants).Row






MsgBox "ZeileMIN = " & ZeileMin
MsgBox "SpalteMIN = " & SpalteMin
MsgBox "ZeileMax = " & ZeileMax
MsgBox "SpalteMax = " & SpalteMax



   With Sheets(1)
   Set Bereich = .Range(.Cells(ZeileMin, SpalteMin), .Cells(ZeileMax, SpalteMax))
   End With
Hallo,

z.B. mit der Find-Methode:

Code:
Sub aaa()
 Dim lngLetzteZeile As Long
 With Sheets("Sverweis-Auswahl").Range("D:AD")
   lngLetzteZeile = .Find(What:="*", _
                          After:=.Cells(1), _
                          LookIn:=xlFormulas, _
                          LookAt:=xlWhole, _
                          SearchOrder:=xlByRows, _
                          SearchDirection:=xlPrevious, _
                          MatchCase:=False).Row
 End With
 MsgBox lngLetzteZeile
End Sub

Gruß Uwe
Hallöchen,

ein Hinweis noch zu Uwe's Lösung.

Wenn Du die "leeren" Zellen durch Formeln erzeugst, z.B. ="", dann werden die in der Lösung berücksichtigt. Wenn Du keine Formeln mit dem möglichen Ergebnis "" verwendest oder das so gewollt ist, ist das auch ok.
Falls Du die letzte mit einem von "" verschiedenen Ergebnis belegte Zeile auswerten willst, nimmst Du statt xlFormulas dann xlValues.