Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: End(xlUp).Row ab bestimmter Zeile

End(xlUp).Row ab bestimmter Zeile
16.12.2017 21:22:43
MB12
Hallo liebe Helfer,
aus einer bestehenden Datei übertrage ich verschiedene Werte aus einem formatierten Bereich in weitere Formulare.
Die Werte beginnen in Zeile 3 (A:L)und gehen bis MAXIMAL Zeile 24. Zeile 25 ist immer leer, aber auch formatiert. Ab Zeile 26 starten andere Daten, die nicht einbezogen werden dürfen.
Mit dem jetzigen Code müsste ich in eine Hilfsspalte weiter rechts Werte eintragen, wenn eine Zahl in Spalte B eingetragen ist (z.B. =WENN(B3="";"";"x")).
Da aber nicht alle Kollegen sauber arbeiten, kann es sein, dass irgendwo irrtümlich ein Wert in der Hilfsspalte auftaucht.
Deshalb würde ich den Code gerne abändern und die Spalte B abfragen, aber erst ab Zeile 25 nach oben.
Habe die Lösung einfach nicht gefunden.
Hier ein kleiner Ausschnitt aus meinem Code:
Private Sub CommandButton2_Click()
Dim owb1 As Workbook
Dim owb2 As Workbook
Dim owb3 As Workbook
Dim lletzte As Long
Set owb1 = ThisWorkbook
Set owb2 = Workbooks.Open("X:\Formular2.xlsm")
lletzte = owb1.Worksheets("Ablaufplan").Cells(Rows.Count, 2).End(xlUp).Row
owb2.Worksheets("Tabelle1").Range("B19:D" & lletzte + 16) = _ owb1.Worksheets("Ablaufplan"). _
Range("B3:D" & lletzte).Value
End Sub
Herzlichen Dank für jeden Vorschlag.
Gruß, Margarete
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: End(xlUp).Row ab bestimmter Zeile
16.12.2017 21:56:12
Gerd
Moin Margarete!
Spricht etwas gegen
lletzte = owb1.Worksheets("Ablaufplan").Cells(25, 2).End(xlUp).Row
?
Gruß Gerd
AW: nö, spricht nichts dagegen..
17.12.2017 08:59:04
MB12
Hallo lieber Gerd,
der Blackout ist vielleicht meiner Grippe geschuldet, unsere gesamte Abteilung hat's erwischt.
Da leidet manchmal auch das logische Denken...
Vielen lieben Dank, Margarete
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

End(xlUp).Row ab bestimmter Zeile in Excel VBA


Schritt-für-Schritt-Anleitung

Um die letzte Zeile in einer bestimmten Spalte ab einer bestimmten Zeile zu finden, kannst du die End(xlUp) Methode in Excel VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne dein Excel-Dokument und wechsle in den Visual Basic for Applications (VBA) Editor (Alt + F11).

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (DeineDatei)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub CommandButton2_Click()
       Dim owb1 As Workbook
       Dim owb2 As Workbook
       Dim lletzte As Long
    
       Set owb1 = ThisWorkbook
       Set owb2 = Workbooks.Open("X:\Formular2.xlsm")
    
       ' Bestimme die letzte Zeile ab Zeile 25
       lletzte = owb1.Worksheets("Ablaufplan").Cells(25, 2).End(xlUp).Row
    
       ' Kopiere die Werte in die andere Arbeitsmappe
       owb2.Worksheets("Tabelle1").Range("B19:D" & lletzte + 16) = _
           owb1.Worksheets("Ablaufplan").Range("B3:D" & lletzte).Value
    End Sub
  4. Ändere den Pfad zur Arbeitsmappe Formular2.xlsm entsprechend deinem Dateisystem.

  5. Schließe den VBA-Editor und teste den Code durch Klicken auf den Button, den du erstellt hast.


Häufige Fehler und Lösungen

  • Fehler: "Subscript out of range"

    • Ursache: Du hast möglicherweise einen falschen Arbeitsmappennamen oder -blattnamen angegeben.
    • Lösung: Überprüfe die Namen der Arbeitsmappen und -blätter in deinem Code.
  • Fehler: Keine Werte gefunden

    • Ursache: Wenn die Zellen unter Zeile 25 leer sind, wird möglicherweise nichts gefunden.
    • Lösung: Stelle sicher, dass in den Zellen ab Zeile 25 Werte vorhanden sind.

Alternative Methoden

Eine andere Methode, um die letzte Zeile in Excel VBA zu ermitteln, ist die Verwendung einer Schleife:

Dim letzteZeile As Long
letzteZeile = 25 ' Startzeile
Do While Not IsEmpty(owb1.Worksheets("Ablaufplan").Cells(letzteZeile, 2))
    letzteZeile = letzteZeile + 1
Loop
letzteZeile = letzteZeile - 1 ' Die letzte gefüllte Zeile

Diese Methode funktioniert, auch wenn die Daten nicht kontinuierlich sind.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das die Verwendung von End(xlUp) in einer realen Situation zeigt:

Angenommen, du hast einen Verkaufsbericht in Excel, und du möchtest die letzte Zeile mit Verkaufsdaten in Spalte B finden. Wenn du sicherstellen möchtest, dass die Daten ab Zeile 25 ausgewertet werden, kannst du den obigen Code verwenden, um die letzte Zeile zu ermitteln und die Daten in eine andere Tabelle zu kopieren.


Tipps für Profis

  • Verwende die Option Explicit Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Kommentiere deinen Code ausführlich, damit du und andere ihn später leichter verstehen können.
  • Nutze Debug.Print oder MsgBox, um den Wert von Variablen während der Ausführung zu überprüfen und so Fehler schneller zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile in einer anderen Spalte finden? Du kannst einfach die Spaltennummer in der Cells Methode anpassen, z.B. Cells(25, 3) für Spalte C.

2. Was passiert, wenn Zeile 25 leer ist? In diesem Fall wird die End(xlUp) Methode die letzte gefüllte Zeile über Zeile 25 finden. Achte darauf, dass du die Logik entsprechend anpasst, wenn du andere Anforderungen hast.

3. Funktioniert dieser Code in Excel 365? Ja, dieser Code funktioniert in Excel 365 sowie in anderen Versionen, die VBA unterstützen.

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