Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

For Next-Schleife mit Ermitteln letzte Zeile

For Next-Schleife mit Ermitteln letzte Zeile
13.05.2015 02:05:00
Siggi07
Hallo,
nun bastele ich seit geraumer Zeit an einer Schleifenlösung, von der ich dachte, sie wäre relativ einfach, scheint sie aber doch nicht zu sein.
Es handelt sich um eine Liste von Buchungen, die u.a. 2 Spalten enthält für Betrag (Spalte J) und Steuerbetrag (Spalte K). Wenn in K ein Steuerbetrag steht - also 0 - dann soll die Zeile kopiert und unterhalb der Ursprungszeile eingefügt werden, der Steuerbetrag wird in dieser neuen Zeile in Spalt J geschrieben.
Nicht alle Buchungszeilen enthalten einen Steuerbetrag in Spalte K.
Leider funktioniert meine Lösung nur teilweise, wahrscheinlich weil sich die anfangs ermittelte letzte Zeile ja immer weiter nach unten verschiebt. Die Schleife bricht jedenfalls vorher ab, es werden nicht alle Zeilen mit Steuerbetrag kopiert.
Wer weiß die Lösung? Für Unterstützung bedanke ich mich im voraus!
Sub ForNext_test()
Dim i As Long
Dim i2 As Long
i2 = Range("C1048576").End(xlUp).Row
For i = 2 To i2
If Cells(i, 11).Value  0 Then
Rows(i & ":" & i).Copy
Cells(i + 1, 1).Select
Rows(ActiveCell.Row).Insert Shift:=xlDown
Cells(i + 1, 10).Value = Cells(i + 1, 11).Value
Cells(i, 11).Value = 0
Cells(i + 1, 11).Value = 0
i = i + 1
End If
Next
End 

Sub

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

Betreff
Datum
Anwender
Anzeige
AW: For Next-Schleife mit Ermitteln letzte Zeile
13.05.2015 07:46:21
Daniel
Hi
ja, ist prinzipell richtig.
Wenn du eine Zeile einfügst, müsstest du das Schleifenende um ein eine Zeile erweitern.
Dies ist in einer For-Next-Schleife aber nicht möglich.
wenn das Einfügen und Löschen von Zeilen in einer For-Next-Schleife erfolgt, dann sollte man diese Schleife von unten nach oben (Rückwärts) laufen lassen.
das hat den vorteil, dass die Veränderungen die sich daraus ergeben, in dem Teil der Tabelle stattdfinden den die Schleife schon durchlaufen hat und somit keinen Einfluss auf die Schleife haben.
For i = i2 to 2 Step - 2

Gruß Daniel

Anzeige
AW: For Next-Schleife mit Ermitteln letzte Zeile
13.05.2015 14:17:41
siggi07
Hallo Daniel,
Danke für die Rückmeldung!
Habs probiert, aber wohl nicht gründlich durchdacht. Es wurde nur eine einzige Zeile kopiert (133), insgesamt sind es 146, sonst passierte nichts. Die erste zu kopierende Zeile hätte die 145 sein müssen. Bin erst mal ratlos und probiere es weiter. Vielen Dank nochmal!

layout
13.05.2015 15:45:28
Michael
Mal sehen...
ob das klappt.
M.

AW: For Next-Schleife mit Ermitteln letzte Zeile
13.05.2015 15:52:03
Daniel
vielleicht Step - 1 statt Step - 2 ?
Gruß Daniel

AW: For Next-Schleife mit Ermitteln letzte Zeile
13.05.2015 20:19:10
siggi07
Was lange währt... hat geklappt mit Step -1 und natürlich Löschen der letzten Code-Zeile in der If-Klausel. Das war ein Super-Tipp, hab was dazugelernt, Danke!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige