Soyez le premier à donner votre avis sur cette source.
Snippet vu 2 761 fois - Téléchargée 29 fois
'COMPTE LE NOMBRE DE FOIS OU UNE JOURNEE (LUNDI, MARDI, MERCREDI, JEUDI.... APPARAIT DANS UNE PERIODE Public Function CountDowInPeriod(ByVal DateStart As Date, ByVal DateEnd As Date, ByVal dow As Integer) Dim DOWStart As Date Dim DOWEnd As Date Dim TMPDATE As Date Dim Result As Long Result = 0 If dow > 0 And dow < 8 Then If DateStart > DateEnd Then TMPDATE = DateStart DateStart = DateEnd DateEnd = TMPDATE End If '------ PREMIERE SEMAINE DE LA PERIODE (éventuellement incomplète) DOWStart = DateStart DOWEnd = DateAdd("d", 7 - Weekday(DOWStart, vbUseSystemDayOfWeek), DOWStart) Result = Result - (dow >= Weekday(DOWStart, vbUseSystemDayOfWeek) And dow <= Weekday(DOWEnd, vbUseSystemDayOfWeek)) '------ LES AUTRES SEMAINES DE LA PERIODE (complètes situées en milieu de période) DOWStart = DateAdd("d", 1, DOWEnd) DOWEnd = DateAdd("d", -(Weekday(DateEnd, vbUseSystemDayOfWeek)), DateEnd) Result = Result + (DateDiff("d", DOWStart, DOWEnd) + 1) / 7 '------ DERNIERE SEMAINE DE LA PERIODE (éventuellement incomplète) DOWStart = DateAdd("d", 1, DOWEnd) DOWEnd = DateEnd Result = Result - (dow >= Weekday(DOWStart, vbUseSystemDayOfWeek) And dow <= Weekday(DOWEnd, vbUseSystemDayOfWeek)) End If CountDowInPeriod = Result End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.