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

Forumthread: VBA - loop until

VBA - loop until
17.11.2004 14:08:43
Dzenko
Hallo,
ich möchte eine nach Excel exportierte Liste bearbeiten.
Die ersten Zeilen sind leer. Mit dem "do loop untill-Befehl" kann ich diese löschen.
Was muss ich eingeben, damit der loop bis zur ersten beschriebenen Zelle erfolgt und so den loop beendet. Also ungleich leer ("")?
Danke und Gruß
Dzenko
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - loop until
Udo
Do while Zelle = ""
....
Loop
Udo
AW: VBA - loop until
Volker
Hallo Dzenko,
while cells(1,1)=""
rows(1).delete
wend
Gruß
Volker
AW: VBA - loop until
u_
ohne loop:
Range(cells(1,1),cells(1,1).end(xldown).offset(-1,0)).entirerow.delete
Anzeige
AW: VBA - loop until
17.11.2004 15:16:50
dzenko
Danke für eure Tipps,
aber richtig geholfen haben sie mir nicht (Wahrscheinlich habe ich es nicht verstanden).
Habe folgendermaßen angefangen und so funktioniert es auch:
Range("c1").Select
Do
If Range("a1").Value = "" Then
Rows("1:1").Select
Selection.Delete Shift:=xlUp
End If
Loop Until Range("c1").Value = "ablauf"
Wenn ich jetzt nicht ablauf schreiben möchte, sondern etwas was dem Befehl sagt:" die Zelle ist nicht leer jetzt kannst du aufhören." Also ungleich ""!!
Oder eine andere leichtere Methode.
Danke
Dzenko
Anzeige
AW: VBA - loop until
xule
du hast es doch schon richtig "geschrieben" ungleich ""
wird in VBA so geschrieben ""


      
Sub tt()
    
'Range("c1").Select 'kann weg
    Do
        
If Range("a1").Value = "" Then
            Rows(
"1:1").Delete Shift:=xlUp
        
End If
    
Loop Until Range("c1").Value <> ""
    
End Sub 



Vermeide select im Code, hat nur zur folge,das der Bildschirm Zappelt und Code langsam wird
Gruß UD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Schleifen: Loop Until und Do Until in Excel


Schritt-für-Schritt-Anleitung

Um leere Zeilen in einer Excel-Liste mittels VBA zu löschen, kannst du die Do Until Schleife verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).

  3. Kopiere folgenden Code in das Modul:

    Sub DeleteEmptyRows()
       Do Until Range("A1").Value <> ""
           Rows("1:1").Delete Shift:=xlUp
       Loop
    End Sub
  4. Schließe den Editor und führe das Skript aus, um leere Zeilen zu löschen, bis die erste beschriebene Zelle erreicht ist.

Mit dieser loop until Methode kannst du einfach überprüfen, ob eine Zelle leer ist, und die Zeile entsprechend löschen.


Häufige Fehler und Lösungen

  • Fehler: Der Loop wird nie beendet.
    Lösung: Stelle sicher, dass die Bedingung im Until-Teil korrekt ist. Zum Beispiel Range("A1").Value <> "" muss erfüllt sein, damit der Loop stoppt.

  • Fehler: Der Code löscht mehr Zeilen als gewünscht.
    Lösung: Überprüfe, ob die Bedingung korrekt gesetzt ist. Statt If Range("A1").Value = "" kann auch eine spezifische Zelle verwendet werden.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, um leere Zeilen zu löschen, ohne eine Schleife zu verwenden. Hier sind zwei Alternativen:

  1. Range-Objekt verwenden:

    Range(Cells(1, 1), Cells(1, 1).End(xlDown)).EntireRow.Delete
  2. Do While Schleife:

    Sub DeleteEmptyRowsWhile()
       Do While Cells(1, 1).Value = ""
           Rows(1).Delete
       Loop
    End Sub

Diese Methoden sind oft schneller und eleganter als eine vba do loop until.


Praktische Beispiele

Hier sind einige praktische Anwendungen der vba loop until und do until Schleifen:

  • Beispiel 1: Löschen aller leeren Zeilen in einer bestimmten Spalte.

    Sub DeleteEmptyRowsInColumn()
       Dim i As Long
       i = 1
       Do Until IsEmpty(Cells(i, 1))
           i = i + 1
       Loop
       Rows(i & ":" & Rows.Count).Delete
    End Sub
  • Beispiel 2: Verwenden einer Bedingung, um den Loop zu beenden.

    Sub LoopUntilNotEmpty()
       Do
           If Cells(1, 1).Value <> "" Then Exit Do
           Rows(1).Delete
       Loop
    End Sub

Diese Beispiele zeigen, wie du die vba loop until Schleife effektiv nutzen kannst.


Tipps für Profis

  • Vermeide Select: Vermeide es, .Select in deinem Code zu verwenden, da dies den Code langsamer macht und die Lesbarkeit verringert.
  • Debugging: Nutze Debug.Print innerhalb deiner Schleifen, um Werte zu überprüfen und den Fortschritt zu verfolgen.
  • Fehlerbehandlung: Implementiere einfache Fehlerbehandlungen, um sicherzustellen, dass dein Code auch bei unerwarteten Werten robust bleibt.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Do Until und Do While in VBA?
Do Until führt die Schleife aus, bis die Bedingung wahr wird, während Do While die Schleife ausführt, solange die Bedingung wahr ist.

2. Wie stoppe ich eine Schleife, wenn ich ein bestimmtes Kriterium erreicht habe?
Du kannst Exit Do oder Exit For verwenden, um die Schleife vorzeitig zu beenden, wenn dein Kriterium erfüllt ist.

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