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