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

Bei Schleife die Durchlaufzahl erhöhen

Forumthread: Bei Schleife die Durchlaufzahl erhöhen

Bei Schleife die Durchlaufzahl erhöhen
13.01.2016 09:10:00
Manfred
Hallo Excelfreunde,
ich habe wieder mal ein Problem, was ich nicht alleine lösen kann und benötige deswegen Eure Hilfe.
Ich habe eine Schleife im Makro, mit der ich bei Bedarf Leerzeilen einfüge. Nun möchte ich natürlich die Schleife jedes mal, wenn ich eine Leerzeile eingefügt habe, auch um die Zahl 1 erhöhen, damit kein Datensatz vergessen wird.
Wie kann ich das am Besten erreichen, während die Schleife durchläuft? Oder hat jemend einen anderen Lösungsvorschlag, wie ich an Ziel kommen kann?
For Schleife = 3 To AnzZeilen
...
Next Schleife
Gruß Manfred

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Schleife die Durchlaufzahl erhöhen
13.01.2016 09:16:47
UweD
Hallo
sowas lässt man immer von Unten nach oben durchlaufen.

For Schleife = AnzZeilen To 3 Step -1
Next Schleife
Gruß UweD

AW: Bei Schleife die Durchlaufzahl erhöhen
13.01.2016 09:22:38
Manfred
Hallo UweD,
das ist ein Super Tip, da wäre ich alleine nie drauf gekommen, vielen vielen Dank.
Gruß Manfred

Anzeige
AW: Bei Schleife die Durchlaufzahl erhöhen
13.01.2016 10:47:14
Luschi
Hallo Manfred,
auf sowas muß man ja auch nicht alleine kommen, sondern kann auch die Excel-Vba-Hilfe bemühen:
- Cursor in das Codewort 'For' stellen
- und die F1-Taste drücken
Gruß von Luschi
aus klein-Paris

AW: Bei Schleife die Durchlaufzahl erhöhen
13.01.2016 11:07:31
Daniel
Hi
bei einer For-Next-Schleife wird der Schleifenendwert beim Start der Schleife fixiert, dh er kann nachträglich nicht verändert werden (auch wenn er eine Variable ist)
man kann die Schleife zwar mit Exit For vorzeitig beenden, aber man kann sie nicht verlängern.
wenn man das braucht, muss man eine DO-LOOP-Schleife verwenden, welche aber langsamer und etwas komplizierter ist als For-Next (z.B. mit dem Risiko einer Endlosschleife bei falschen Abbruchbedingungen).
aber für die Bearbeitung von Zellen hast du ja eine bessere Alternative.
Gruss Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Schleifen in Excel VBA effizient nutzen


Schritt-für-Schritt-Anleitung

Um die Durchlaufzahl einer For-Schleife in Excel VBA zu erhöhen, wenn du Leerzeilen einfügst, kannst du wie folgt vorgehen:

  1. Schleife definieren: Beginne mit der Definition deiner Schleife. Wenn du beispielsweise von Zeile 3 bis zur Anzahl der Zeilen (AnzZeilen) durchlaufen möchtest, sieht der Code so aus:

    For Schleife = 3 To AnzZeilen
       ' Code zum Einfügen von Leerzeilen
    Next Schleife
  2. Umkehren der Schleife: Um sicherzustellen, dass die Schleife korrekt funktioniert, wenn du Leerzeilen einfügst, solltest du die Schleife von unten nach oben laufen lassen. Dies erreichst du mit folgendem Code:

    For Schleife = AnzZeilen To 3 Step -1
       ' Code zum Einfügen von Leerzeilen
    Next Schleife
  3. Leerzeilen einfügen: Innerhalb der Schleife fügst du die Leerzeilen ein, was die Anzahl der zu durchlaufenden Zeilen beeinflusst.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass die Schleifenendwerte nicht dynamisch angepasst werden. Wenn du eine For-Schleife verwendest, um Leerzeilen einzufügen, kann dies zu Problemen führen. Um dies zu vermeiden:

  • Fehler: Schleife läuft nicht korrekt, weil die Anzahl der Zeilen sich ändert.
  • Lösung: Verwende die Umkehrschleife, um sicherzustellen, dass du die korrekten Zeilen bearbeitest.

Ein weiterer Punkt ist der Einsatz von Exit For, um die Schleife vorzeitig zu beenden, wenn bestimmte Bedingungen erfüllt sind.


Alternative Methoden

Wenn du eine flexiblere Schleife benötigst, um die Durchlaufzahl zu erhöhen, kannst du stattdessen eine Do-Loop-Schleife verwenden. Diese ist jedoch oft langsamer und komplizierter in der Anwendung. Hier ein Beispiel:

Dim i As Integer
i = 3
Do While i <= AnzZeilen
    ' Code zum Einfügen von Leerzeilen
    i = i + 1 ' hier wird die Schleifenvariable erhöht
Loop

Hier kannst du die Schleifenvariable nach Bedarf erhöhen, was mehr Flexibilität bietet.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie du Leerzeilen in einer Tabelle einfügen kannst:

Sub LeerzeilenEinfuegen()
    Dim AnzZeilen As Long
    Dim Schleife As Long

    AnzZeilen = Cells(Rows.Count, 1).End(xlUp).Row

    For Schleife = AnzZeilen To 3 Step -1
        If Cells(Schleife, 1).Value = "" Then
            Rows(Schleife).Insert Shift:=xlDown
        End If
    Next Schleife
End Sub

In diesem Beispiel wird eine Leerzeile eingefügt, wenn die Zelle leer ist. Achte darauf, dass du bei der Verwendung von For die Schleife von unten nach oben laufen lässt.


Tipps für Profis

  • Überlege, ob du Application.ScreenUpdating = False verwenden möchtest, um die Leistung zu verbessern, wenn du viele Zeilen bearbeitest.
  • Nutze Exit For, um die Schleife vorzeitig zu beenden, wenn du dein Ziel erreicht hast.
  • Verwende die F1-Taste in der VBA-Hilfe, um weitere Tipps zur For-Schleife zu erhalten.

FAQ: Häufige Fragen

1. Kann ich die Schleifenvariable in einer For-Schleife nachträglich ändern? Nein, der Schleifenendwert wird beim Start der Schleife festgelegt und kann nicht verändert werden.

2. Was ist der Vorteil der Umkehrschleife? Die Umkehrschleife verhindert, dass du Datensätze überspringst, wenn du während der Schleifenbearbeitung Zeilen einfügst.

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