Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

nb.jours.ouvres

10 réponses
Avatar
erwann67
Bonjour

J'ai un petit problème

Sur l'ordinateur sur lequel je travaille, dans Excel, la fonction
nb.jours.ouvres n'est pas intégré
Cette fonction m'est indispensable

Quelqu'un pourrait-il me la donner sous formes de fonctions personnalisés en
langages VBA ?
Ex : Function nb.jours.ouvres(Date_Départ; Date_Fin)

Merci

10 réponses

Avatar
JLuc
*Bonjour erwann67*,
Dans Options/Macros complémentaires...
Cocher Utilitaires d'analyse

Bonjour

J'ai un petit problème

Sur l'ordinateur sur lequel je travaille, dans Excel, la fonction
nb.jours.ouvres n'est pas intégré
Cette fonction m'est indispensable

Quelqu'un pourrait-il me la donner sous formes de fonctions personnalisés en
langages VBA ?
Ex : Function nb.jours.ouvres(Date_Départ; Date_Fin)

Merci


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
AV
Pour ne pas être tributaire des fonctions de l'Utilitaire d'Analyse et des ses
gros soucis de portabilité :
La date de Début est en A2, la date de Fin en B2 et il y a une plage nommée
"JoursFériés" contenant les jours fériés (et/ou non travaillés)

** Une formule matricielle :

=SOMME((JOURSEM(LIGNE(INDIRECT(A2&":"&B2));2)<6)*ESTNA(EQUIV(LIGNE(INDIRECT(A2&":"&B2));JoursFériés;0)))

** Une fonction perso issue de la matricielle avec un petit coup d'Evaluate :

Function NbJoursOUV(Déb, Fin, JrFs)
NbJoursOUV = Evaluate("sum((weekday(row(" & [Déb] * 1 & ":" & [Fin] * 1 _
& "),2)<6)*isna(match(row(" & [Déb] * 1 & ":" & [Fin] * 1 & ")," &
[JrFs].Address(external:=True) & ",0)))")
End Function

Dans la feuille ça donnera :
=NbJoursOUV(A2;B2;JoursFériés)

** Une fonction perso avec une bouclette :

Function NbJoursOUV2(Déb, Fin, JrFs)
For i = Déb * 1 To Fin * 1
If Weekday(i, vbMonday) < 6 And IsError(Application.Match(i, [JrFs], 0))
Then x = x + 1
Next
NbJoursOUV2 = x
End Function

Dans la feuille ça donnera :
=NbJoursOUV2(A2;B2;JoursFériés)

AV
Avatar
AV
L'exemple qui va avec...
http://cjoint.com/?fFiYLTqZcM

AV
Avatar
Thierry
Voilà mon algo :

Function NB_JOUR_OUVRES(Début, fin)
'
' Cette fonction utilisable dans une feuille de calcul sous la forme
' =NB_JOUR_OUVRES(DATE(B1;B2;1);DATE(B1;B2+1;1)-1)ou B1= année à traiter
' et B2 = mois à traiter et ou 1 représente le 1er jour du mois et b2+1;1)-1
le dernier
' jour du mois
'
For i = Year(Début) To Year(fin)
Tbl = Tbl & DateSerial(i, 1, 1) * 1 & "," 'Jour de l'An
p = Evaluate("round(date(" & i & ",4,mod(234-11*mod(" & i &
",19),30))/7,)*7-5") 'Lundi de Pâques
Tbl = Tbl & p & ","
Tbl = Tbl & DateSerial(i, 5, 1) * 1 & "," 'Fête du travail
Tbl = Tbl & DateSerial(i, 5, 8) * 1 & "," 'Victoire 1945
Tbl = Tbl & p + 38 & "," 'Jeudi de l'Ascension
'Tbl = Tbl & P + 49 & "," 'Lundi de Pentecôte
Tbl = Tbl & DateSerial(i, 7, 14) * 1 & "," 'Fête Nationale
Tbl = Tbl & DateSerial(i, 8, 15) * 1 & "," '15 Aôut
Tbl = Tbl & DateSerial(i, 11, 1) * 1 & "," ' Toussaint
Tbl = Tbl & DateSerial(i, 11, 11) * 1 & "," '11 Nov [Armistice 1918]
Tbl = Tbl & DateSerial(i, 12, 25) * 1 & "," ' Noël
Next
'
If Tbl = "" Then Exit Function
'
Y = "{" & Left(Tbl, Len(Tbl) - 1) & "}"
'
For j = Début * 1 To fin * 1
If Weekday(j, 2) < 6 And Evaluate("isna(match(" & j & "," & Y & ",0))")
Then x = x + 1
Next
'
NB_JOUR_OUVRES = x
'
End Function






"erwann67" a écrit dans le message de
news:
Bonjour

J'ai un petit problème

Sur l'ordinateur sur lequel je travaille, dans Excel, la fonction
nb.jours.ouvres n'est pas intégré
Cette fonction m'est indispensable

Quelqu'un pourrait-il me la donner sous formes de fonctions personnalisés
en
langages VBA ?
Ex : Function nb.jours.ouvres(Date_Départ; Date_Fin)

Merci


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 09:16:41
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 09:20:34
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

Avatar
AV
Voilà mon algo :


Ca me rappelle furieusement quelque chose...

;-)
AV

Avatar
Thierry
Possible car c'est sur ce n'est pas moi qui l'ai fait

:) :)

"AV" a écrit dans le message de news:

Voilà mon algo :


Ca me rappelle furieusement quelque chose...

;-)
AV





---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 10:10:13
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-0, 30/05/2007
Analyse le : 31/05/2007 10:11:02
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com


Avatar
MichDenis
| Pour ne pas être tributaire des fonctions de l'Utilitaire d'Analyse et des ses
| gros soucis de portabilité :

Du travail de moins pour toi avec Excel 2007, 39 des formules des macros
complémentaires sont devenus des formules natives d'excel !
C'est pas beau ça ?
;-))
Avatar
AV
Du travail de moins pour toi avec Excel 2007, 39 des formules des macros
complémentaires sont devenus des formules natives d'excel !


Formules ? Fonctions tu voulais dire..;-)
Ceci dit, il faut assurer la compatibilité descendante...
Donc ça ne résoud pas vraiment le problème.... avant quelques années (d'ici à ce
que tout le monde utilise XL2007....)

AV

Avatar
Francois L
Possible car c'est sur ce n'est pas moi qui l'ai fait

:) :)


Bonsoir,

... ce qui suggèrerait d'écrire "voila l'algo que j'utilise" à défaut de
citer l'auteur



"AV" a écrit dans le message de news:

Voilà mon algo :
Ca me rappelle furieusement quelque chose...




--
François L



Avatar
erwann67
Bonjour

Tout d'abord je remercie tous les contributeurs pour leurs efforts

Mais la meilleure réponse, et réponse qui fonctionne et est relativement
simple est celle de AV

Pour ma part, je ne comprends absolument pas son fonctionnement
Mais l'essentiel est qu'elle fonctionne et qu'elle soit courte

Merci