A3 : date de départ
B3 : date de retour
C3 : nombre de jours pris
de D3 à O3 : les jours pris par mois
A toi de gérer ensuite si les jours sont inclus ou pas dans les dates départ / retour
A affiner aussi, le nombre de jours dans le mois ( 30 ou 31 , ou meme 28/29 pour février )
Sub CALx()
' **** calcul du nombre de jours pris
ThisWorkbook.ActiveSheet.Range("C3" ) = DateDiff("d", ThisWorkbook.ActiveSheet.Range("A3" ), ThisWorkbook.ActiveSheet.Range("B3" ), vbMonday, vbFirstJan1) + 1
For t = 1 To 12
' **** calcul du nbre de jour pris dans le mois du début du congé
If Month(ThisWorkbook.ActiveSheet.Range("A3" )) = t Then
ThisWorkbook.ActiveSheet.Cells(3, 3 + t) = DateDiff("d", ThisWorkbook.ActiveSheet.Range("A3" ), DateSerial(2004, t, 31), vbMonday, vbFirstJan1) + 1
End If
' **** calcul du nbre de jour pris dans le mois dde fin du congé
If Month(ThisWorkbook.ActiveSheet.Range("B3" )) = t Then
ThisWorkbook.ActiveSheet.Cells(3, 3 + t) = DateDiff("d", DateSerial(2004, t, 1), ThisWorkbook.ActiveSheet.Range("B3" ), vbMonday, vbFirstJan1) + 1
End If
' **** test et calcul si un mois entier à été pris dans la période de congé
If t > Month(ThisWorkbook.ActiveSheet.Range("A3" )) And t < Month(ThisWorkbook.ActiveSheet.Range("B3" )) Then
ThisWorkbook.ActiveSheet.Cells(3, 3 + t) = 30
End If
Next t
End Sub
Message édité par Profil supprimé le 17-11-2004 à 12:43:38