Christophe,
I am attaching a vba function obtained via copilot and header info supplied by me. I hope I have your requirements properly defined.
Update: I tried your french expression into copilot and the resulting code had errors. I tried several iterations with copilot to correct errors but his results were still giving errors --incorrect result.
I suggest you try to work with the function attached.
PM if you have additional issues.
Another update:
I have revised the french version, I have calculate the week number of the BaseDate which removes the StartingWeek parameter. I have run the french version several times l and think I have it working. You'll notice some frenglish terms.
Code:
Function CalculerSemaineEtDate(BaseDate As Date, BaseTime As String, nbSemaines As Integer) As String
Dim NouvelleDate As Date
Dim DateDeDepart As Date
Dim StartingWeek As Integer
Dim Resultat As String
Dim NouvelleHeure As String
' Vérifier que le nombre de semaines est valide
If nbSemaines < 1 Or nbSemaines > 6 Then
CalculerSemaineEtDate = "Erreur : Veuillez sélectionner un nombre de semaines entre 1 et 6."
Exit Function
End If
' Réutiliser StartingWeek comme valeur initiale ou recalculer à partir de BaseDate
StartingWeek = DatePart("ww", BaseDate, vbSunday, vbFirstFourDays)
' Calculer la date de départ correspondant au StartingWeek
DateDeDepart = DateAdd("ww", StartingWeek, BaseDate)
' Calculer la nouvelle date en ajoutant nbSemaines à DateDeDepart
NouvelleDate = DateAdd("ww", nbSemaines, BaseDate)
' Construire le résultat
Resultat = "Semaine de départ : " & StartingWeek & vbCrLf & _
"Base date : " & Format(BaseDate, "yyyy-mm-dd") & vbCrLf & _
"Base heure : " & Format(BaseTime, "hh:mm:ss") & vbCrLf & _
"Nouvelle date : " & Format(NouvelleDate, "yyyy-mm-dd") & vbCrLf & _
"Nouvelle heure : " & Format(BaseTime, "hh:mm:ss")
CalculerSemaineEtDate = Resultat
End Function
Sample execution:
?CalculerSemaineEtDate ( Date,Time,3)
Semaine de départ : 13
Base date : 2025-03-26
Base heure : 18:35:52
Nouvelle date : 2025-04-16
Nouvelle heure : 18:35:52
J'espère avoir compris vos exigences.