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

Forumthread: letzte Zeile löschen

letzte Zeile löschen
René
Hallo,
ich suche mit diesem Makro hier die letzte Zeile mit einem Datum in einem Arbeitsblatt. Nun möchte ich noch erreichen das diese Zeile gelöscht wird. Was muss ich da noch ergänzen.
Sub t()
Dim iZeile As Long
For iZeile = Range("a65536").End(xlUp).Row To 1 Step -1
If IsDate(Cells(iZeile, 1)) Then Exit For
Next iZeile
End Sub

MfG René
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: letzte Zeile löschen
11.05.2011 10:35:53
Matthias
Hallo
Vielleicht so:
Sub t()
Dim iZeile As Long
For iZeile = Range("a65536").End(xlUp).Row To 1 Step -1
If IsDate(Cells(iZeile, 1)) Then
MsgBox iZeile
Rows(iZeile).Delete
Exit For
End If
Next iZeile
End Sub
MsgBox iZeile wieder entfernen
Gruß Matthias
Anzeige
AW: letzte Zeile löschen
11.05.2011 10:38:55
Mäxl
Hi
Sub t()
Dim iZeile As Long
For iZeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(Cells(iZeile, 1)) Then Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
End Sub

gruß
Mäxl
AW: letzte Zeile löschen
11.05.2011 10:51:13
René
Hallo ihr beiden ,
funktioniert super,
nun habe ich aber noch ein kleines Problem. Ich muss in zwei Tabellenblättern die letzte Zeile löschen. Aber zwei mal Dim geht nicht. Hm?
Sub Schaltfläche2_Klicken()
Sheets("Ampel").Visible = True
Sheets("Ampel").Select
Dim iZeile As Long
For iZeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(Cells(iZeile, 1)) Then Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
Sheets("Ampel").Visible = False
Sheets("Daten").Visible = True
Sheets("Daten").Select
Dim iZeile As Long
For iZeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(Cells(iZeile, 1)) Then Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
Sheets("Daten").Visible = False
ActiveWorkbook.Save
End Sub

Anzeige
zwei mal Dim geht nicht
11.05.2011 11:02:43
Rudi
Hallo,
dann lass das 2. mal doch weg.
Gruß
Rudi
AW: zwei mal Dim geht nicht
11.05.2011 11:11:50
René
Danke Rudi. Das funktioniert. Einen sonnigen Tag für Euch drei.
:)
Du brauchst nur ein DIM
11.05.2011 11:13:43
Matthias
Hallo
Dim iZeile As Long
With Sheets("Ampel")
.Visible = True
.Select
For iZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(.Cells(iZeile, 1)) Then .Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
MsgBox "weiter" 'nur zum verfolgen
.Visible = False
End With
With Sheets("Daten")
.Visible = True
.Select
For iZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(.Cells(iZeile, 1)) Then .Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
MsgBox "weiter" 'nur zum verfolgen
.Visible = False
End With


wobei das so schon reicht - ohne Visible & ohne Select
Option Explicit
Sub ml()
Dim iZeile As Long
With Sheets("Ampel")
For iZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(.Cells(iZeile, 1)) Then .Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
End With
With Sheets("Daten")
For iZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsDate(.Cells(iZeile, 1)) Then .Cells(iZeile, 1).EntireRow.Delete: Exit For
Next iZeile
End With
End Sub

Userbild
Anzeige
AW: Du brauchst nur ein DIM
11.05.2011 14:11:15
René
Hallo Matze,
Danke Dir herzlich.
MfG René
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile in Excel löschen


Schritt-für-Schritt-Anleitung

Um die letzte Zeile mit einem Datum in einem Excel-Arbeitsblatt zu löschen, kannst du das folgende Makro verwenden. Achte darauf, dass du VBA (Visual Basic for Applications) in Excel aktiviert hast. Hier ist der Schritt-für-Schritt-Prozess:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub t()
    Dim iZeile As Long
    For iZeile = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If IsDate(Cells(iZeile, 1)) Then
            Cells(iZeile, 1).EntireRow.Delete
            Exit For
        End If
    Next iZeile
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro über Entwicklertools > Makros aus und wähle t aus der Liste aus.

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Überprüfe, ob das Arbeitsblatt, auf das du zugreifst, korrekt benannt ist. Dies kann passieren, wenn das Arbeitsblatt nicht existiert oder unsichtbar ist.
  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass du die richtigen Referenzen zu den Objekten in deinem Code verwendest. Verwende die With-Anweisung, um die Lesbarkeit zu verbessern.

Alternative Methoden

Eine alternative Möglichkeit, die letzte Zeile zu löschen, wäre die Verwendung von Excel-Formeln oder Power Query, wenn du keinen VBA-Code verwenden möchtest. Diese Methoden sind jedoch weniger flexibel, da sie nicht automatisch die letzte Zeile mit einem Datum erkennen können.


Praktische Beispiele

Hier sind einige Beispiele, wie du das Makro anpassen kannst:

  1. Zweite Tabelle: Wenn du die letzte Zeile in zwei verschiedenen Tabellenblättern löschen möchtest, kannst du den Code so anpassen:
Sub Schaltfläche2_Klicken()
    Dim iZeile As Long
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = "Ampel" Or ws.Name = "Daten" Then
            With ws
                For iZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
                    If IsDate(.Cells(iZeile, 1)) Then
                        .Cells(iZeile, 1).EntireRow.Delete
                        Exit For
                    End If
                Next iZeile
            End With
        End If
    Next ws
End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Vermeide .Select und .Activate: Diese Anweisungen verlangsamen deinen Code. Arbeite stattdessen direkt mit Objekten.

  • Debugging: Nutze MsgBox oder Debug.Print, um den Wert von Variablen während der Ausführung zu überprüfen.


FAQ: Häufige Fragen

1. Kann ich das Makro auf mehreren Arbeitsblättern gleichzeitig ausführen? Ja, du kannst das Makro so anpassen, dass es über eine Schleife alle gewünschten Arbeitsblätter durchläuft.

2. Was mache ich, wenn ich die letzte Zeile mit einem bestimmten Wert löschen möchte? Du kannst die Bedingung in der If-Anweisung anpassen, um nach einem bestimmten Wert zu suchen, anstatt nur nach einem Datum zu filtern.

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