For Schleife zählt nicht durch
14.01.2019 09:36:36
Steve
ein ungewöhnliches Problem lässt mir momentan keine Ruhe. Ich habe eine (von vielen :) ) For-Schleife programmiert, welche aber nicht bis zum Ende durchzählt.
Anderes als bei normalen Schleifen, wird in dieser der Endwert bei manchen Schleifendurchläufen mit hinauf gezählt.
Zur Erklärung: Es werden Zeilen in einer Tabelle eingefügt, dadurch erhöht sich der Endwert "size", welcher die Gesamtanzahl der Zeilen darstellt. Die Zählvariable i läuft mit und sollte irgendwann den Endwert size erreichen.
Aus irgendeinem Grund springt VBA z.B.: bei i=16 und size = 23 aus der Schleife und beendet somit die function. Ist im Debugger recht klar zu erkennen, aber warum?
Das Marko funktioniert schon, wenn ich es mehrmals starte tut es auch genau da weiter, wo es soll, aber mehr als 3-5 Einträge (Neue Zeilen) schafft es nicht auf einmal - irgendwie alles komisch...
Hier der Code (vereinfacht)
For i = 3 To size
If Cells(i + 1, 12) - Cells(i, 12) > 1 Then
DateCounter = Cells(i, 12).Value
'Feiertagsabfrage
If Feiertag(DateCounter + 1) = False Then
'Wenn Wochenende dazwischen
If Cells(i, 2) = "Freitag" Then
ActiveSheet.Cells(i + 1, 1).EntireRow.Insert
Rows(i + 1).Interior.Color = vbGreen
Cells(i + 1, 2) = "Samstag"
'Wenn es ein Fehltag ist
Else
ActiveSheet.Cells(i + 1, 1).EntireRow.Insert
Rows(i + 1).Interior.Color = vbRed
Cells(i + 1, 11) = "Fehltag"
End If
Else
ActiveSheet.Cells(i + 1, 1).EntireRow.Insert
Rows(i + 1).Interior.Color = vbGreen
End If
size = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Next i
End Function
Besten Dank im Voraus!