Rebonsoir à tous,
Je vais faire ma proposition VBA , écrite sur papier il fallait que je vérifie qu'elle fonctionne...
Sub Dater()
Dim dddf(), dref As Date, dLn%, dCl%, kd%, kf%, i%
With Worksheets("Planning avec dates")
dLn = .Range("E" & .Rows.Count).End(xlUp).Row
dCl = .Range("G4").End(xlToRight).Column
dref = DateSerial(.Range("G2"), 1, 3)
dref = dref - Weekday(dref) + 2
dref = dref + (CInt(Replace(.Range("G4"), "W", "")) - 1) * 7
ReDim dddf(dLn - 5, 1)
With .Range("G5").Resize(, dCl - 6)
On Error Resume Next
For i = 0 To UBound(dddf, 1)
kd = WorksheetFunction.Match("X", .Offset(i), 0) - 1
If Err.Number = 0 Then
kf = WorksheetFunction.CountA(.Offset(i)) + kd - 1
Else
Err.Clear: GoTo noDate
End If
dddf(i, 0) = dref + kd * 7
dddf(i, 1) = dref + kf * 7 + 4
noDate:
Next i
End With
End With
With Worksheets("Dates").Range("C2").Resize(UBound(dddf, 1) + 1, 2)
.Value = dddf
.NumberFormat = "dd/mm/yyyy"
End With
End Sub
Cordialement.