Soyez le premier à donner votre avis sur cette source.
Snippet vu 54 034 fois - Téléchargée 37 fois
function nbjourouvrable(datdeb,datfin) if datdeb="" or datfin="" then exit function nbjourtot = DateDiff("d",datdeb,datfin) + 1 for i=1 to nbjourtot if ferie(datdeb) then nbjourtot = nbjourtot - 1 end if datdeb=DateAdd("d",1,datdeb) next nbjourouvrable=nbjourtot End function function ferie(Jour) if jour="" then exit function Dim JJ,AA Dim NbOr, Epacte Dim PLune, Paques, Ascension, Pentecote JJ = Day(Jour) mm = Month(Jour) AA = Year(Jour) If JJ = 1 And mm = 1 Then ferie = True: Exit Function '1 Janvier If JJ = 1 And mm = 5 Then ferie = True: Exit Function '1 Mai If JJ = 8 And mm = 5 Then ferie = True: Exit Function '8 Mai If JJ = 14 And mm = 7 Then ferie = True: Exit Function '14 Juillet If JJ = 15 And mm = 8 Then ferie = True: Exit Function '15 Août If JJ = 1 And mm = 11 Then ferie = True: Exit Function '1 Novembre If JJ = 11 And mm = 11 Then ferie = True: Exit Function '11 Novembre If JJ = 25 And mm = 12 Then ferie = True: Exit Function '25 Décembre NbOr = (AA Mod 19) + 1 Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30 PLune = CDate("19/04/" & AA) - ((Epacte + 6) Mod 30) If Epacte = 24 Then PLune = PLune - 1 If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1 Paques = PLune - Weekday(PLune) + vbMonday + 7 'Paques If JJ = Day(Paques) And mm = Month(Paques) Then ferie=true : Exit Function Ascension = Paques + 38 'Ascension If JJ = Day(Ascension) And mm = Month(Ascension) Then ferie=true : Exit Function Pentecote = Ascension + 11 'Pentecote If JJ = Day(Pentecote) And mm = Month(Pentecote) Then ferie=true : Exit Function ferie = False Dim numjour numjour=weekday(jour,vbmonday) 'fixe à 6 et 7 la valeur du samedi & dimanche if numjour=6 or numjour=7 then ferie=true : Exit function End function
26 mai 2010 à 23:50
26 mai 2010 à 10:45
du genre :
function nbjourferie(datdeb,datfin)
if datdeb="" or datfin="" then exit function
nbjourferie=0
nbjourtot = DateDiff("d",datdeb,datfin) + 1
for i=1 to nbjourtot
if ferie(datdeb) then
nbjourferie= nbjourferie + 1
endif
datdeb=DateAdd("d",1,datdeb)
next
End function
25 mai 2010 à 22:37
Tout d'abord merci pour ce code ma foi fort utile pour comptabiliser les journées travaillées. J'ai essayé de l'adapter pour qu'il fonctionne quand le samedi ou le dimanche sont travaillés. Ca fonctionne très bien, cependant je n'arrive pas à afficher le nombre de jour férié de chaque mois. Quelle variable utiliser ?
Merci de votre aide.
Slymalen
5 mars 2009 à 10:44
tu colles les deux fonction dans ton code et tu appelles la fonction principale :
nbjours=nbjourouvrable(datedebut ,datefin)
en ayant défini ta variable nbjours au préalable et normalement c'est bon.
5 mars 2009 à 09:56
j'aimerais me servir de ce code source dans access 2003 !
j'ai crer une table : datedebut et datefin
ensuite créer un formulaire : et la j'aimerais afficher le nb de jour écouler !
je suis perdu dans la façon de maitre en place ce code source !!
Débutant dans les codes sources !
si ont peut m'expliquer par étape ! ça serais cool ou un exemple !
Merci beaucoup de votre Aide !!!!!
teck
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.