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

zeile löschen vba

Forumthread: zeile löschen vba

zeile löschen vba
09.02.2005 08:48:38
Jonny
Hi zusammen,
ich möchte eine Zeile per vba löschen.
Hab es mit Makro aufzeichnen versucht, um mir ein Grundgerüst zu beschaffen.
Rows(10:10).Select
Selection.Delete Shift:=xlUp
Nun soll er aber nicht die 10te Zeile löschen, sondern eine von mir übermittelte Zeile. z.b.:
z=19
rows(z:z).select
...
es klappt aber nicht!? wie müsste die Syntax aussehen?!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zeile löschen vba
Frederik
hallo!

Sub test()
z = 19
Rows(z & ":" & z).Delete Shift:=xlUp
End Sub

gruß
f.
AW: zeile löschen vba
09.02.2005 09:05:53
Jonny
Könnt ihr mir sagen, was an diesem Makro falsch ist?! Er soll überprüfen, ob in der 16ten Spalten der Zeilen 8 bis 100 ein "wahr" steht. Ist es der Fall, dann soll er diese Zeile löschen. Dieses Makro löscht aber alle Zeilen von 8 bis 100. HELP?!

Sub eingefügte_Zeilen_löschen()
Dim z As Integer
For z = 8 To 100
If Sheets("abc").Cells(z, 16) = "wahr" Then _
Rows(z & ":" & z).Select
Selection.Delete Shift:=xlUp
Next z
End Sub

Anzeige
AW: zeile löschen vba
UweD
Hallo
so gehts:

Sub eingefügte_Zeilen_löschen()
Dim z As Integer
For z = 8 To 100
If Sheets("abc").Cells(z, 16) = "wahr" Then _
Rows(z & ":" & z).Delete Shift:=xlUp
Next z
End Sub

oder so:

Sub eingefügte_Zeilen_löschen()
Dim z As Integer
For z = 8 To 100
If Sheets("abc").Cells(z, 16) = "wahr" Then
Rows(z & ":" & z).Select
Selection.Delete Shift:=xlUp
End If
Next z
End Sub

Das Problem ist das _ Zeichen...
Anzeige
AW: zeile löschen vba
09.02.2005 09:21:52
Jonny
danke hab ich jetzt..
mir fällt nur grad ein, dass wenn zwei zeilen untereinander "wahr" sind, dann nimmt das Makro ja die erste überprüft und löscht. Dabei rutscht das zweite, in die Zeile hoch und wird so vom makro übersehen.
Hab grad es mit einer zuweisung versucht, hierbei soll er z um eins minieren, wenn die Bedinung wahr ist. klappt nicht...endlosschleife..:
For z = 8 To 100
If Sheets("abc").Cells(z, 16) = "wahr" Then
Rows(z & ":" & z).Select
Selection.Delete Shift:=xlUp
z = z-1
End If

Next z
Anzeige
AW: zeile löschen vba
UweD
Arbeite von unten nach oben. da erübrigt sich das.

Sub eingefügte_Zeilen_löschen()
Dim z As Integer
For z = 100 To 8 Step -1
If Sheets("abc").Cells(z, 16) = "wahr" Then _
Rows(z & ":" & z).Delete Shift:=xlUp
Next z
End Sub

vermeide Select. dadurch "zapplet" nur der Bildschirm...
Gruß UweD
Anzeige
AW: zeile löschen vba
09.02.2005 09:47:09
Jonny
DAnke...
Der Gedanke kam mir auch in den Sinn, jedoch konnte ich es nicht umsetzen. Mir fehlen noch die Grundkenntnisse....
nochmals Danke an Alle...
AW: zeile löschen vba
Dr.
Z.B. so

Sub test()
zeile = InputBox("welche zeile?")
Rows(zeile).EntireRow.Delete
End Sub

Anzeige
AW: zeile löschen vba
Jan
Hi Jonny,
Über eine Inputbox so:

Sub löschen1()
zeile = InputBox("Zeilen-Nr. eingeben: ")
Rows(zeile).Delete
Range("A1").Select
End Sub

Jan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel per VBA löschen


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel per VBA zu löschen, kannst du das folgende Grundgerüst verwenden. Hierbei wird eine bestimmte Zeile auf Basis einer Variablen z gelöscht:

Sub zeile_loeschen()
    Dim z As Integer
    z = 19 ' Hier die Zeile angeben, die gelöscht werden soll
    Rows(z & ":" & z).Delete Shift:=xlUp
End Sub

Wenn du mehrere Zeilen basierend auf einer Bedingung löschen möchtest, kannst du eine Schleife verwenden. Zum Beispiel, um alle Zeilen zu löschen, in denen in der 16. Spalte der Wert "wahr" steht:

Sub eingefuegte_Zeilen_loeschen()
    Dim z As Integer
    For z = 8 To 100
        If Sheets("abc").Cells(z, 16) = "wahr" Then
            Rows(z & ":" & z).Delete Shift:=xlUp
        End If
    Next z
End Sub

Häufige Fehler und Lösungen

Ein häufiger Fehler entsteht, wenn du versuchst, Zeilen von oben nach unten zu löschen. Dabei kann es passieren, dass nach dem Löschen einer Zeile die nachfolgenden Zeilen übersprungen werden. Um dies zu vermeiden, solltest du von unten nach oben arbeiten:

Sub eingefuegte_Zeilen_loeschen()
    Dim z As Integer
    For z = 100 To 8 Step -1
        If Sheets("abc").Cells(z, 16) = "wahr" Then
            Rows(z & ":" & z).Delete Shift:=xlUp
        End If
    Next z
End Sub

Achte darauf, dass du Selection.Delete Shift:=xlUp vermeidest, wenn möglich, da dies den Bildschirm flackern lassen kann.


Alternative Methoden

Eine alternative Methode, um eine Zeile zu löschen, ist die Verwendung einer InputBox. So kannst du die Zeilennummer direkt vom Benutzer abfragen:

Sub zeile_loeschen_via_inputbox()
    Dim zeile As Integer
    zeile = InputBox("Gib die Zeilennummer ein, die gelöscht werden soll:")
    Rows(zeile).Delete
End Sub

Mit dieser Methode kannst du flexibel jede Zeile löschen, ohne den Code anpassen zu müssen.


Praktische Beispiele

Hier sind einige nützliche Beispiele für das Löschen von Zeilen mit VBA:

  1. Einzelne Zeile löschen:

    Sub einzelne_zeile_loeschen()
       Rows(10).Delete Shift:=xlUp
    End Sub
  2. Mehrere Zeilen löschen, wenn eine Bedingung erfüllt ist:

    Sub mehrere_zeilen_loeschen()
       Dim z As Integer
       For z = 1 To 50
           If Cells(z, 1).Value = "löschen" Then
               Rows(z).Delete Shift:=xlUp
           End If
       Next z
    End Sub

Diese Beispiele können dir helfen, deine VBA-Fähigkeiten im Bereich "Zeilen löschen" zu erweitern.


Tipps für Profis

  • Vermeide die Verwendung von .Select und .Selection, um den Code effizienter zu gestalten.
  • Nutze Shift:=xlUp, um die Zeilen nach dem Löschen nach oben zu verschieben.
  • Arbeite bei Schleifen, die Zeilen löschen, von unten nach oben, um unerwünschte Überspringungen zu vermeiden.
  • Teste deinen Code in einer Kopie deiner Datei, um versehentliche Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie lösche ich mehrere Zeilen gleichzeitig?
Du kannst eine Schleife verwenden, um mehrere Zeilen basierend auf einer Bedingung zu löschen, wie im obigen Beispiel gezeigt.

2. Was passiert, wenn ich versuche, eine nicht existierende Zeile zu löschen?
Excel gibt einen Laufzeitfehler aus, wenn du versuchst, eine Zeile zu löschen, die außerhalb des gültigen Bereichs liegt. Achte darauf, dass die Zeilennummer im gültigen Bereich liegt.

3. Kann ich mit VBA auch ganze Spalten löschen?
Ja, du kannst mit Columns("A:A").Delete Shift:=xlUp eine ganze Spalte löschen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige