jour par mois entre deux dates - VB/VBA/VBS - Programmation
Marsh Posté le 17-11-2004 à 12:09:43
tu peux plus clair dans ta demande, stp ? j'ai pas saisie le truc. Tu parle de calculer un nombre de jour, mais entre quel ecartype ?
Marsh Posté le 17-11-2004 à 12:42:04
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
Marsh Posté le 17-11-2004 à 18:43:48
Merci pour ces infos je vais faire les derniers reglages
A+
Marsh Posté le 16-11-2004 à 21:56:23
Bonjour
J'ai un fichier excel, en A1 la date de depart, en B1 la daet retour, en C1 le nbre de jours entre les deux date grace a datedif, mais voila apres de d1 a o1 j'ai janvier etc jusqu'a decembre, j'aimerai qu'excel ecrive sous chaque mois le nbre de jours ou l'individu est absent: exemple du 20/04/04 au 06/06/04 en sous janvier 0 etc.. avril 12, mai 30 et juin 6.
Merci d'avance pour vos soluces