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

Forumthread: Zeilen in variablen Bereich löschen

Zeilen in variablen Bereich löschen
Hubert
Hallo zusammen,
ich habe folgendes Problem ich will Zeilen ab der Zeile 20 bis zur letzten verwendeten Zeile löschen können. Aber die letzte Zeile soll man nicht löschen können. Folgender Code (von Peter) läuft gut. Nur meine 2 Bedingung mit der letzten verwendeten Zeile stimmt nicht. Was mache ich falsch ?

Sub ZeileLöschen()
Dim lngZeile As Long
ActiveSheet.UsedRange.Rows.Count = lngZeile
If ActiveCell.Row > 19 And ActiveCell.Row < lngZeile Then
On Error GoTo Fehler
Application.EnableEvents = False
Rows(ActiveCell.Row).Delete
Application.EnableEvents = True
Else
MsgBox "Löschen in diesem Bereich nicht möglich !!!"
End If
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub

Danke für eure Hilfe
mfg
hubert
Anzeige
AW: Zeilen in variablen Bereich löschen
Russi
Hallo Hubert!
Drehe die Zeile um:
lngZeile = ActiveSheet.UsedRange.Rows.Count
So gehts bei mir...
Viele Grüße
Russi
www.Russi.de.tt
AW: Zeilen in variablen Bereich löschen
Hubert
HAllo Russi,
ja aber es werden auch Zellen gelöscht, wo keine Daten drin stehn!
:-(
mfg hubert
AW: Zeilen in variablen Bereich löschen
Russi
Hallo Hubert!
Sorry. Reicht es Dir, wenn in Spalte A der betreffenden Zeile nach Inhalt gesucht wird?
Dann baue wie folgt noch eine IF-Abfrage ein:

Sub ZeileLöschen()
Dim lngZeile As Long
lngZeile = ActiveSheet.UsedRange.Rows.Count
If ActiveCell.Row > 19 And ActiveCell.Row < lngZeile Then
On Error GoTo Fehler
Application.EnableEvents = False
If Range("A" & ActiveCell.Row).Value <> "" Then Rows(ActiveCell.Row).Delete
Application.EnableEvents = True
Else
MsgBox "Löschen in diesem Bereich nicht möglich !!!"
End If
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub

Anzeige
Danke
Hubert
Ja danke das kann ich für meinen Bedarf umstricken,...
Vielen Dank aus Ulm
Hubert
AW: Zeilen in variablen Bereich löschen
PeterW
Hallo Hubert,
dreh mal die Zeile um
lngZeile = ActiveSheet.UsedRange.Rows.Count
Gruß
Peter
AW: Zeilen in variablen Bereich löschen
Hubert
Hallo Peter,
habe es gleich ausprobiert. Haut aber nicht hin. Es werden auch Zellen gelöscht,wo kein Daten drin stehen.
Anzeige
AW: Zeilen in variablen Bereich löschen
PeterW
Hallo Hubert,
habe es gerade noch einmal getestet und es gibt keine Probleme. Kann es sein, dass du Zellen mit der Leertaste "gelöscht" hast?
Gruß
Peter
AW: Zeilen in variablen Bereich löschen
Hubert
Mmh, ich schau mal ob ichs mit dem Code von Russi hinbekomme
Liegt vielleicht auch an den verschieden gesperrten Bereichen wo ich vergeben habe.
Melde mich sonst wieder,..
Danke für die Hilfe !!!
Mfg
Hubert
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in einem variablen Bereich mit Excel VBA löschen


Schritt-für-Schritt-Anleitung

Um Zeilen in einem variablen Bereich mit Excel VBA zu löschen, kannst du den folgenden Code verwenden. Dieser Code löscht alle Zeilen ab Zeile 20 bis zur letzten verwendeten Zeile, wobei die letzte Zeile nicht gelöscht wird:

Sub ZeileLöschen()
    Dim lngZeile As Long
    lngZeile = ActiveSheet.UsedRange.Rows.Count
    If ActiveCell.Row > 19 And ActiveCell.Row < lngZeile Then
        On Error GoTo Fehler
        Application.EnableEvents = False
        If Range("A" & ActiveCell.Row).Value <> "" Then
            Rows(ActiveCell.Row).Delete
        End If
        Application.EnableEvents = True
    Else
        MsgBox "Löschen in diesem Bereich nicht möglich !!!"
    End If
    Exit Sub
Fehler:
    Application.EnableEvents = True
End Sub

Dieser Code stellt sicher, dass nur Zeilen mit Inhalt in Spalte A gelöscht werden. Achte darauf, dass du in einer Zelle ab Zeile 20 aktiv bist, bevor du das Makro ausführst.


Häufige Fehler und Lösungen

  1. Problem: Zellen ohne Daten werden gelöscht.

    • Lösung: Stelle sicher, dass die IF-Abfrage in deinem Code korrekt implementiert ist, um nur Zeilen mit Inhalt zu löschen.
  2. Problem: Fehler beim Ausführen des Codes.

    • Lösung: Überprüfe, ob die ActiveCell tatsächlich in einem gültigen Bereich ist (d.h. Zeile > 19 und < letzte Zeile).

Alternative Methoden

  • Manuelles Löschen: Du kannst Zeilen auch manuell löschen, indem du die entsprechenden Zeilen auswählst, mit der rechten Maustaste klickst und "Zeilen löschen" wählst. Diese Methode ist jedoch weniger effizient, wenn du viele Zeilen auf einmal löschen musst.

  • Filtern und Löschen: Eine andere Methode besteht darin, die Daten zu filtern, um nur die Zeilen anzuzeigen, die du löschen möchtest. Anschließend kannst du diese Zeilen auf einmal löschen.


Praktische Beispiele

Wenn du beispielsweise alle Zeilen ab Zeile 20 löschen möchtest, die in Spalte A keinen Inhalt haben, kannst du den obigen Code anpassen. Hier ist eine einfache Anpassung:

Sub ZeilenOhneInhaltLöschen()
    Dim lngZeile As Long
    Dim i As Long
    lngZeile = ActiveSheet.UsedRange.Rows.Count
    For i = lngZeile To 20 Step -1
        If Range("A" & i).Value = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub

Dieser Code löscht alle Zeilen ab Zeile 20, in denen Spalte A leer ist.


Tipps für Profis

  • VBA variable leeren: Um sicherzustellen, dass deine Variablen nach der Verwendung geleert werden, kannst du Set verwenden, um Objekte zu löschen.

  • Code optimieren: Verwende Application.ScreenUpdating = False und Application.Calculation = xlCalculationManual, um die Ausführung von VBA schneller zu gestalten, besonders wenn du mehrere Zeilen löschen musst.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeilen auf einmal löschen?
Du kannst die Schleife im Beispielcode verwenden, um mehrere Zeilen basierend auf einer Bedingung zu löschen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten aktuellen Excel-Versionen funktionieren, die VBA unterstützen. Achte jedoch darauf, dass du die richtigen Berechtigungen hast, um VBA-Skripte auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige