bonsoir,
La macro corrigée...
Option Base 1
Sub Calcul()
Dim x%, i%, iA%, k%, iR%, iC%, iQ%
Dim TTHQ(2, 12)
Dim Arr
Dim WsS As Worksheet, WsC As Worksheet
Set WsC = Worksheets("Accueil")
'Définir les lignes de dates analogues (mod 3)
Arr = Split("7 17 27 8 18 28 9 19 29 10 20 30 11 21 31")
mois = 1
For x = 1 To Worksheets.Count - 1
Set WsS = Worksheets("Semaine " & x) 'choix onglet
For iA = 0 To 14
If iA Mod 3 = 0 Then iQ = 0 'Init l'utilisateur chaque jour
iR = Arr(iA)
If mois < Month(WsS.Cells(iR, 1)) Then 'Ecriture
For i = 1 To 12
WsC.Cells(i + 2, mois + 1) = TTHQ(1, i) 'Repas
WsC.Cells(i + 17, mois + 1) = TTHQ(2, i) 'Heures
Next
Erase TTHQ
mois = mois + 1
End If
For iC = 6 To 30 Step 8
iQ = iQ + 1
TTHQ(2, iQ) = TTHQ(2, iQ) + WsS.Cells(iR, iC).Value 'Heures
TTHQ(1, iQ) = TTHQ(1, iQ) + WsS.Cells(iR, iC + 1).Value 'repas
Next
Next
Next
For i = 1 To 12 'Ecriture du dernier mois
WsC.Cells(i + 2, mois + 1) = TTHQ(1, i) 'Repas
WsC.Cells(i + 17, mois + 1) = TTHQ(2, i) 'Heures
Next
End Sub
A+