Termine und Verspätung
14.02.2018 09:12:07
Alina
ich habe folgende Problemstellung:
Ich habe eine Tabelle, in der in einer "Soll"-Spalte Termine stehen, die eben an diesem Tag abzuhalten sind. Direkt daneben ist eine "Ist"-Spalte, in der eingetragen wird, wann der Termin tatsächlich abgehalten wurde.
In einer zweiten Tabelle wird mir dann (wenn ich es denn programmiert bekomme) die Differenz zwischen Soll- und Ist-Termin angezeigt.
Zum Beispiel:
Ich habe einen Termin am 10.5.2017, aber ich realisiere ihn tatsächlich erst einen Tag zu spät. Dann soll mir in der zweiten Spalte "1" angezeigt werden.
Ich glaube, ich bin schon sehr nach dran, nur die Zeile mit der FORMULA ist noch falsch, dann mir wird in allen Fällen eine falsche Differenz angezeigt (zum Bespiel, wenn ich den Termin am 10.5. habe und ihn auch am 10.5. realisiere, dann wird mir als Differenz 1 angezeigt; oder wenn ich einen am 5.10. habe, und reinschreibe, dass ich ihn am 15.10 abgehalten habe, wird mir als Differenz 7 ausgegeben.
Hier eis Auszug aus meinem Code:
For j = 4 To (n - 1)
For i = 3 To 22
Select Case i
Case 3
If Not IsEmpty(ws1.Cells(j + 1, 10)) Then
If Not IsEmpty(ws1.Cells(j + 1, 11)) Then
If IsDate(ws1.Cells(j + 1, 11).Text) Then
ws3.Cells(j, i).FormulaR1C1 = "=networkdays('Rtx Befüllung'!R" & (j + 1) & "C10,'Rtx Befüllung'!R" & (j + 1) & "C11)" 'RtX Befüllung ist der Tabellenname der Tabelle, in die die Termine eingetragen werden
Call TerminFar(ws3.Cells(j, i), ws3.Cells(j, i).Text) 'hier wird Termin eingefärbt, das klappt soweit
End If
End If
End If
Case 4
If Not IsEmpty(ws1.Cells(j + 1, 16)) Then
If Not IsEmpty(ws1.Cells(j + 1, 17)) Then
If IsDate(ws1.Cells(j + 1, 17).Text) Then
ws3.Cells(j, i).FormulaR1C1 = "=networkdays('Rtx Befüllung'!R" & (j + 1) & "C16,'Rtx Befüllung'!R" & (j + 1) & "C17)"
Call TerminFar(ws3.Cells(j, i), ws3.Cells(j, i).Text)
End If
End If
End If
...
Function TerminFar(ran As Range, n As Integer) 'Funktion um Termine je nach Differenz Soll und Ist einzufärben (Ampelsystem)
If n ran.Interior.Color = RGB(0, 176, 80)
ElseIf n > 0 And n ran.Interior.Color = RGB(255, 255, 0)
ElseIf n > 10 Then
ran.Interior.Color = RGB(255, 0, 0)
End If