Hallo liebe Community,
ich stehe vor folgendem Problem. Während einer Beschleunigung sollen Gänge beim KFZ mindestens 2 Sekunden lang genutzt warden und es darf kein Gang übersprungen werden.
Bsp.:
0,1,2,3,3,3,3,3 --> 0,1,1,2,2,3,3,3
Wichtig ist auch, dass die Gesamtzeit nicht verlängert warden darf (im Bsp. sind es 8 Sekunden. Bei der Korrektur dürfen es dann auch nur 8 Sekunden sein).
Mein Code sieht momentan wie folgt aus (die Korrektur wird in Spalte "D" geschrieben):
Private Sub Insert(ByRef Originalstring As String, Position As Integer, Insertstring As String)
If Position = Len(Originalstring) + 1 Then
Originalstring = Originalstring & Insertstring
Exit Sub
End If
If Position > Len(Originalstring) + 1 Then
Originalstring = Originalstring & Space(Position - Len(Originalstring) - 1) & Insertstring
Exit Sub
End If
Originalstring = Mid(Originalstring, 1, Position - 1) & Insertstring & Mid(Originalstring, Position, Len(Originalstring) - Position + 1)
End Sub
-------------------------------------------------------------------------------------------------------
Private Sub Mache1SekundengängeZu2SekundengängeOhneGängeZuÜberspringen(ByRef i As Integer, ByRef Gangfolge As String)
If Mid(Gangfolge, i + 1, 1) = " " Then Exit Sub
If Mid(Gangfolge, i, 1) > 0 And Abs(CInt(Mid(Gangfolge, i, 1)) - CInt(Mid(Gangfolge, i + 1, 1))) = 1 Then
If i = 1 Then
Call Insert(Gangfolge, i, Mid(Gangfolge, i, 1))
i = i + 1
ElseIf Mid(Gangfolge, i, 1) <> Mid(Gangfolge, i - 1, 1) Then
Call Insert(Gangfolge, i, Mid(Gangfolge, i, 1))
i = i + 1
End If
End If
For i = 1 To Len(Gangfolge)
If Mid(Gangfolge, i, 1) = " " Then Exit For
Cells(i + 1, 4).Value = Mid(Gangfolge, i, 1)
Next
End Sub
Leider funktioniert es damit noch nicht. Kann mir jemand weiterhelfen?
Danke.
Grüße
Sebastian |