salve
Visto che la cosa ha stuzzicato la mia curiosità, per semplificare il tutto ti propongo anche una funzione personalizzata.
Public Function Delay(Mdata As Date, Mgiorni As Integer)
Dim x As Date
mioarray = Array("01/1", "06/1", "24/3", "25/4", _
"01/5", "02/6", "15/8", "01/11", "08/12", "25/12", _
"26/12")
x = Mdata + Mgiorni
Yrs = Year(x)
If x >= "01/08/" & Yrs And x <= "15/09/" & Yrs Then
If Mdata >= "01/08/" & Yrs And x <= "15/09/" & Yrs Then
Fdelay = Mgiorni + CDate("15/09/" & Yrs)
Else
Fdelay = x + 45
End If
dw = Application.WorksheetFunction.Weekday(Fdelay, 2)
For N = 0 To UBound(mioarray)
If Day(Fdelay) & "/" & Month(Fdelay) = mioarray(N) Then
Fdelay = Fdelay + 1
End If
Next N
If dw = 7 Then Fdelay = Fdelay + 1
Delay = Fdelay
Else
dw = Application.WorksheetFunction.Weekday(x, 2)
If dw = 7 Then x = x + 1
For N = 0 To UBound(mioarray)
xxxx = Day(x) & "/" & Month(x)
If Day(x) & "/" & Month(x) = mioarray(N) Then
x = x + 1
End If
Next N
Delay = x
End If
End Function
Devi copiare tutto il codice qui sopra ed incollarlo in un modulo standard di VBA
ecco la procedura: Alt+F11 entri in ambiente editor VBA- Menù Inserisci>Modulo
Nella finestra bianca che si aprirà sulla destra incolla tutto il codice sopra riportato.
Alt+F11 ritorni al foglio di lavoro.
Trovari nell'elenco delle Funzioni nella sezione "Definite dall'utente" la funzione "Delay"
aprendo tale funzione dovrai indicare la cella contenete la data da elaborare ed inserire i giorni di incremento.
es: =Delay(A7;10)
prova
saluti
Andrea