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

Alternative zu "Cells(Rows.Count, 2).End(xlUp)"

Forumthread: Alternative zu "Cells(Rows.Count, 2).End(xlUp)"

Alternative zu "Cells(Rows.Count, 2).End(xlUp)"
02.12.2002 21:10:48
ewald
Hallo zusammen,

gibt es eine alternative Möglichkeit die letzte Zeile
in der ausgewählten Tabelle zu markieren?
Das Makro macht genau dann Probleme, wenn unter der
ausgewählten Tabelle noch andere Tabellen vorhanden sind.

Sub LetzeZeileiBereich()
Dim i As Range
Set i = Cells(Rows.Count, 2).End(xlUp)
i.Select
Range(ActiveCell.Address, ActiveCell.End(xlToRight)).Select
End Sub

PS: Habe probiert mit "i = Selection.CurrentRegion.Rows.Count"
klappt nicht.

Kann mir jemand helfen?

Vielen Dank.

Grüße

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Alternative zu "Cells(Rows.Count, 2).End(xlUp)"
02.12.2002 21:53:31
M. Kuhn
Moin Ewald,

wenn Du mehrere Tabellen auf einem Blatt hast, dann haben diese einen Dir bekannten Umfang an Zeilen.
Über diese kannst Du dann eine Schleife laufen lassen, die auf Zelle = leer oder ein anderes Kriterium prüft.

M. Kuhn

Re: Alternative zu "Cells(Rows.Count, 2).End(xlUp)"
02.12.2002 22:15:49
Regina

Hallo Ewald,
geht vielleicht auch mit:

dim ende as long
ende = Cells(65536, 1).End(xlUp).Row 'von letzter Zeile aufwärts
For h = 2 To ende

Gruß Regina

Anzeige
Re: Alternative zu "Cells(Rows.Count, 2).End(xlUp)"
02.12.2002 23:58:23
Nepumuk
Hallo Ewald,
wenn du ungefähr die Position der zweiten Tabelle z.B. Zeile 2000 ist dann versuch es mal so:

Sub Letzte_nicht_leere_Zeile()
Range("A1999").End(xlUp).Offset(1, 0).Select
End Sub

Gruß
Nepumuk

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Alternativen zu "Cells(Rows.Count, 2).End(xlUp)"


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zum VBA-Editor (drücke ALT + F11).

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deine Datei)", wähle "Einfügen" und dann "Modul".

  3. Kopiere und füge den folgenden Code ein:

    Sub LetzteZeile()
       Dim letzteZeile As Long
       letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
       MsgBox "Die letzte Zeile mit Daten ist: " & letzteZeile
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die letzte Zeile mit Daten in der ersten Spalte zu ermitteln.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt" beim Ausführen des Makros.

    • Lösung: Überprüfe, ob die Zellen in der Spalte, die du analysierst, tatsächlich Daten enthalten und ob die Datentypen übereinstimmen.
  • Fehler: Das Makro wählt die falsche Zeile aus.

    • Lösung: Stelle sicher, dass du die richtige Spalte in Cells(Rows.Count, X).End(xlUp) angibst.

Alternative Methoden

Eine weitere Möglichkeit, die letzte Zeile in einem Bereich zu finden, besteht darin, die CurrentRegion-Methode zu verwenden:

Sub LetzteZeileMitCurrentRegion()
    Dim ende As Long
    ende = Selection.CurrentRegion.Rows.Count
    MsgBox "Die letzte Zeile im aktuellen Bereich ist: " & ende
End Sub

Diese Methode ist nützlich, wenn du mehrere Tabellen auf einem Blatt hast und nur die letzte Zeile der aktuellen Region ermitteln möchtest.


Praktische Beispiele

  • Beispiel 1: Verwende die ActiveSheet-Methode, um die letzte Zeile in einer bestimmten Spalte zu finden:

    Sub LetzteZeileAktivesBlatt()
       Dim letzteZeile As Long
       letzteZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
       MsgBox "Die letzte Zeile in Spalte B ist: " & letzteZeile
    End Sub
  • Beispiel 2: Wenn du eine Tabelle hast, die von der Zeile 2000 beginnt, kannst du auch so vorgehen:

    Sub LetzteNichtLeereZeile()
       Range("A1999").End(xlUp).Offset(1, 0).Select
    End Sub

Tipps für Profis

  • Nutze End(xlUp) anstelle von End(xlDown), um sicherzustellen, dass du von der letzten Zeile nach oben arbeitest.
  • Verwende Offset, um gezielt die nächste leere Zeile auszuwählen, anstatt nur die letzte Zeile mit Daten.
  • Kombiniere Methoden, um in komplexen Datenstrukturen effizienter zu arbeiten, indem du beispielsweise Schleifen zur Überprüfung von Bedingungen verwendest.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen End(xlUp) und End(xlDown)?
End(xlUp) sucht von unten nach oben nach der letzten gefüllten Zelle, während End(xlDown) von oben nach unten sucht.

2. Kann ich die letzte Zeile in einer anderen Spalte als Spalte 1 ermitteln?
Ja, du kannst die Spalte in der Cells-Methode ändern, z.B. Cells(Rows.Count, 2).End(xlUp).Row für die zweite Spalte.

3. Was passiert, wenn ich keine Daten in der Spalte habe?
Wenn die Spalte leer ist, wird die Methode End(xlUp) die erste Zeile zurückgeben, was zu unerwarteten Ergebnissen führen kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige