den nachfolgenden Code hatte mir Erich zur Verfügung gestellt. Er läuft absolut super und ist für meinen angedachten Zweck genau richtig. Nun ergibt sich für mich noch eine andere Konstellation in der Aufteilung/Verteilung von Summen.
Wäre denkbar, den Code so umzustellen, dass er die in TextBox9 genannte Summe durch die Anzahl der Monate teilt und dann erst nach einem verstrichenen Monat anfängt hochzurechnen?
Beispiel: Zeitraum vom 15.10.-15.01.
Verteilung der Mittel:
"erster Abschnitt" am 15.11 (für 15.10-14.11),
"zweiter Abschnitt" am 15.12. (für 15.11-14.12.)
"dritter Abschnitt" am 15.01. (für 15.12.-15.01.)
usw., je nach Zeitraum. Dabei sollte aber bei Jahreswechsel, wenn also der Stichtag für einen nächsten Abschnitt auf einem Tag ab 01.01. fällt, jeweils schon in das neue Jahr übertragen werden (Textbox14, Label25).
Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
Sub berechnen() ' Verteilung der Kosten auf JAHRE
Dim daTB5 As Date, daTB6 As Date
Dim SchnittTag As Double, ii As Integer, intTage As Integer
With Application.WorksheetFunction
If IsDate(TextBox5) And IsDate(TextBox6) Then
daTB5 = CDate(TextBox5)
daTB6 = CDate(TextBox6)
SchnittTag = CDbl(TextBox9) / (daTB6 + 1 - daTB5) ' Wert pro Tag
For ii = Year(daTB5) To Year(daTB6)
intTage = .Min(daTB6 + 1, DateSerial(ii + 1, 1, 1)) _
- .Max(daTB5, DateSerial(ii, 1, 1))
Me("TextBox" & 13 + ii - Year(daTB5)) = .Round(SchnittTag * intTage, 2)
Me("Label" & 24 + ii - Year(daTB5)) = "Jahr " & ii
Next ii
End If
End With
End Sub