Bonjour la communauté,
Je galère sur une tâche sur Excel/VBA sans succès. Je souhaite lisser le budget sur le nombre de jours du mois sur le nombre total de jours. Je souhaite avoir le même résultat que celui qui se trouve à la ligne 4 de la colonne AC à la colonne AN.
Exemple : Start Date = 24/04/2020
End Date = 31/10/2020
Total Budget = 245.00 €
On devrait avoir sur :
- avril : 245 * 7/ (End Date - Start Date +1)
- mai : 245*31/ (End Date - Start Date +1)
- Juin : 245*30/(End Date - Start Date +1)
- Juillet : 245*31/(End Date - Start Date +1)
- Août : 245*31/(End Date - Start Date +1)
- Sept : 245*30/(End Date - Start Date +1)
- Oct : 245*31/(End Date - Start Date +1)
Merci beaucoup pour votre
aide
Je galère sur une tâche sur Excel/VBA sans succès. Je souhaite lisser le budget sur le nombre de jours du mois sur le nombre total de jours. Je souhaite avoir le même résultat que celui qui se trouve à la ligne 4 de la colonne AC à la colonne AN.
Exemple : Start Date = 24/04/2020
End Date = 31/10/2020
Total Budget = 245.00 €
On devrait avoir sur :
- avril : 245 * 7/ (End Date - Start Date +1)
- mai : 245*31/ (End Date - Start Date +1)
- Juin : 245*30/(End Date - Start Date +1)
- Juillet : 245*31/(End Date - Start Date +1)
- Août : 245*31/(End Date - Start Date +1)
- Sept : 245*30/(End Date - Start Date +1)
- Oct : 245*31/(End Date - Start Date +1)
Merci beaucoup pour votre
Code:
Public Function DailyBudgetForecast(L As Integer, C As Integer)
'Dim i As Byte
'Dim FeDataPipe As Worksheet: Set eDataPipe = ThisWorkbook.Worksheets("Data - Pipe")
Dim month1, month2 As Integer
Application.Volatile
sDate = Cells(L, 23)
eeDate = Cells(L, 24)
month1 = Month(Cells(L, 23)) ' Start month extract
month2 = Month(Cells(L, 24)) ' End month extract
If (C - 28) >= month1 And (C - 28) <= month2 Then ' Month segment definition
repart = Day(DateSerial(Year(sDate), Month(sDate) + 1, 0)) - Month(sDate)
DailyBudgetForecast = repart * Round(Cells(L, 22) / (eeDate - sDate + 1), 2) ' Average value distribution
Else
DailyBudgetForecast = ""
End If
If DailyBudgetForecast = "" Then DailyBudgetForecast = ""
End Function