Tu peux le faire facilement par formule.
Tu peux coller la formule par le code (date début dans colonne A, fin dans B, résultat dans C)
Cells(NoLig,3).FormulaR1C1 = "=NB.JOURS.OUVRES(RC[-2],RC[-1])"
Tu tiens à du VBA ? C'est très faisable, mais c'est un peu plus long. Le code avec ou sans les jours fériés
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub NbreJourOuvres() ' Appelle "NBJoursOuvres(DateDebut, DateFin)"
Dim DateDebut As Date, Nbre
Dim DateFin As Date
DateDebut = CDbl(DateValue("03/04/2008"))
DateFin = CDbl(DateValue("12/11/2008"))
Nbre = NBJoursOuvres(DateDebut, DateFin)
MsgBox Nbre ' sans déduction des jours fériés
JourFeries = Array("01/01/2008", "01/05/2008", "08/05/2008", "14/07/2008", "15/08/2008", "01/11/2008", "11/11/2008", "25/12/2008")
For i = 0 To UBound(JourFeries)
Debug.Print "Date début " & DateDebut
Debug.Print "Jour férié " & CDate(JourFeries(i))
Debug.Print "Date fin " & DateFin
Debug.Print CDbl(CDate(JourFeries(i))) > DateDebut And CDbl(CDate(JourFeries(i))) < DateFin
If CDbl(CDate(JourFeries(i))) > DateDebut And CDbl(CDate(JourFeries(i))) < DateFin Then
'Exclusion jours fériés tombant les samedis ou les dimanches
If Not Weekday(JourFeries(i)) = 1 And Not Weekday(JourFeries(i)) = 7 Then _
Nbre = Nbre - 1
End If
Next
MsgBox Nbre ' jours fériés exclus
End Sub |
Juste à changer la récupération des dates dans ta feuille de calculs
Partager