OVH Cloud OVH Cloud

Jours travaillés en VBA

13 réponses
Avatar
Patrick Fredin
Bonjour,

Dans une feuille de calcul, il y a la fonction "NETWORKDAYS" (Jours ouvrés
entre 2 dates).
Je n'arrive pas à trouver cette fonction en VBA, même en utilisant
WorksheetFunction.

Avez-vous une idée ?

Merci d'avance.

--
Patrick

3 réponses

1 2
Avatar
Patrick Fredin
Bonjour,

Je ne sais pas pourquoi, mais en VBA je n'arrive pas à trouver la fonction
NETWORKDAYS. Mais j'ai trouvé une alternative qui donne le même résultat :

Private Function NetWorkDays(ByVal dBegin As Date, ByVal dEnd As Date)
NetWorkDays = (Int(dEnd / 7) - Int(dBegin / 7)) * 5 +
WorksheetFunction.Max(0, (dEnd Mod 7) - 1) - WorksheetFunction.Max(0, (dBegin
Mod 7) - 2)
End Function

Je me suis inspiré de...
http://j-walk.com/ss/excel/eee/eee020.txt

--
Patrick

"LSteph" wrote:

Bonsoir,
Perhaps WeekDays Isn't it?

Mais AV a fait un truc où il y a tout et qui doit s'trouver à Misangeville

lSteph

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

Dans une feuille de calcul, il y a la fonction "NETWORKDAYS" (Jours ouvrés
entre 2 dates).
Je n'arrive pas à trouver cette fonction en VBA, même en utilisant
WorksheetFunction.

Avez-vous une idée ?

Merci d'avance.

--
Patrick







Avatar
michdenis
Bonjour Patrick,

Est-ce que tu veux dire que quelque chose comme ceci ne fonctionne pas chez toi,

MsgBox NetWorkDays(Date, Date + 100)

= 73 = nombre de jours ouvrables entre 2 dates (sans congé férié)


Salutations!



"Patrick Fredin" a écrit dans le message de news:

Bonjour,

Je ne sais pas pourquoi, mais en VBA je n'arrive pas à trouver la fonction
NETWORKDAYS. Mais j'ai trouvé une alternative qui donne le même résultat :

Private Function NetWorkDays(ByVal dBegin As Date, ByVal dEnd As Date)
NetWorkDays = (Int(dEnd / 7) - Int(dBegin / 7)) * 5 +
WorksheetFunction.Max(0, (dEnd Mod 7) - 1) - WorksheetFunction.Max(0, (dBegin
Mod 7) - 2)
End Function

Je me suis inspiré de...
http://j-walk.com/ss/excel/eee/eee020.txt

--
Patrick

"LSteph" wrote:

Bonsoir,
Perhaps WeekDays Isn't it?

Mais AV a fait un truc où il y a tout et qui doit s'trouver à Misangeville

lSteph

"Patrick Fredin" a écrit dans le message
de news:
Bonjour,

Dans une feuille de calcul, il y a la fonction "NETWORKDAYS" (Jours ouvrés
entre 2 dates).
Je n'arrive pas à trouver cette fonction en VBA, même en utilisant
WorksheetFunction.

Avez-vous une idée ?

Merci d'avance.

--
Patrick







Avatar
AV
Je ne sais pas pourquoi, mais en VBA je n'arrive pas à trouver la fonction
NETWORKDAYS. Mais j'ai trouvé une alternative qui donne le même résultat :


MsgBox Evaluate("NetWorkDays(" & Date & "," & Date & "+ 100)")
Les macros complémentaires Utilitaire d'analyse ET Utilitaire d'analyse vba
doivent être cochées !

MsgBox Evaluate("NB.JOURS.OUVRES(" & Date & "," & Date & "+ 7)")
La macro complémentaire Utilitaire d'analyse doit être cochée !

AV

1 2