For-Schleife zählt nicht richtig
15.12.2014 10:43:55
Theo
nachdem ich schon oft hilfreiche Beiträge von euch gelesen habe, muss ich euch heute jetzt auch mal was fragen. Und zwar geht es um For-Schleife (Rückwärts). Die meiner Meinung nach nicht zu Ende Zählt.
In der Tabelle geht es darum Zellen zu Verbinden, Wert rein schreiben, farbig markieren und einrahmen. Das klappt auch alles super. Es geht darum quasi einen Zeitstrahl dar zu stellen, für Aufträge, wobei Samstag Sonntag ausgelassen werden soll. Anbei ein Bild. Die Dauer des Auftrages wird automatisch berechnet und dann durch 6 Stunden (Arbeitsstunden pro Tag) geteilt, also quasi wie viel Tage der Auftrag laufen soll. Mein Code lautet wie folgt:
For gz2 = meintag + 1 To gz3 Step -1
If Cells(mab, gz2 - 1).Interior.ColorIndex = 15 Then
gz2 = gz2 - 3
gz3 = gz3 - 3
End If
Cells(mab, gz2).Interior.ColorIndex = farbe
Cells(mab, gz2).Value = nr
Sheets("slot15").Range(Cells(mab, gz2), Cells(mab, gz2 - 1)).MergeCells = True
Cells(mab, gz2).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Next gz2
Zum Verständis: Es wird Das Enddatum des Auftrags über eine UserForm eingegeben. Danach wird die Zeit für die Auftrag berechnet, und dann quasi rückwärts gerechnet wann man mit dem Auftrag beginnen soll.
In meinem Beispiel beträgt die Auftragszeit 185 Stunden/6 Stunden = (gerundet) 31 Tage. Am Anfang der Schleife haben die Variablen folgende Werte: gz2 = 59 gz3 = 28 (Also Schleife würde 31 mal durchlaufen -> passt). mab ist die Variable für die Zeile( Mitarbeiter abhängig)
Allerdings läuft sie bei mir 20 mal durch. Anbei noch das Bild zur Verständnis (Es wurde der 27. Februar 2015 als Endtermin vorgegeben) Die Grauen Zellen sind Samstag Sonntag, die übersprungen werden sollen. Die Gelben Zellen sind der Auftrag.
Sehr viel Text, und ja mein Code ist wahrscheinlich nicht grad der schönste ;)
Aber trotzdem vielen Dank im Vorraus.