Bonsoir,
Voici ce que tu souhaitais je pense.
Il y a une formule qui permet donc de calculer le premier jour de la semaine /année .
En effet, il faut prendre en compte l'année !
=DATE(ANNEE;1;3)-JOURSEM(DATE(ANNEE;1;3))-5+7*N°SEMAINE
Voici ce que donne le fichier fonctionnel avec le code que j'ai commenté pour comprendre pas à pas:
Sub calculer_semaine_date()
'26/11/2013 by VB_TROYES
Dim day
'on definie la derniere ligne saisie
derlig = Cells(Cells.Rows.Count, "D").End(xlUp).Row
'on boucle les données
For Each c In Range("F1:F" & derlig)
'on identifie le jour pour l'ajout au premier jour de la semaine
jour = Mid(c.Offset(0, -2).Value, 1, 3)
'parametrage nb jour à ajouter
Select Case jour
Case Is = "lun"
day = "0"
Case Is = "mar"
day = "1"
Case Is = "mer"
day = "2"
Case Is = "jeu"
day = "3"
Case Is = "ven"
day = "4"
Case Is = "sam"
day = "5"
Case Is = "dim"
day = "6"
End Select
'j'incremente a la date du premier jour de la semaine definie le nb de jour à ajouter selon jour de la semaine
c.FormulaR1C1 = "=(DATE(R4C1,1,3)-WEEKDAY(DATE(R4C1,1,3))-5+7*R2C1)" & "+" & day
'je formate ma date et l'heure dans deux colonnes à côté
c.Offset(0, 1) = Format(c, "DD/MM/YYYY")
c.Offset(0, 2) = Format((Mid(c.Offset(0, -2), 6, 5)), "@")
'j additionne le jour + l heure
c.FormulaR1C1 = "=RC[1]+RC[2]"
'je formate la case aditionné
c.NumberFormat = "dd/mm/yyyy hh:mm:ss"
'je copie ma donnée pour que la valeur ne depende plus des colonnes à coté
c.Value = c
'je met à vide les 2 colonnes
c.Offset(0, 1) = ""
c.Offset(0, 2) = ""
Next
End Sub