nb.jours.ouvres

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JLuc
Le #4570621
*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

AV
Le #4570281
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
Thierry
Le #4570211
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" 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

AV
Le #4570181
Voilà mon algo :


Ca me rappelle furieusement quelque chose...

;-)
AV

Thierry
Le #4570091
Possible car c'est sur ce n'est pas moi qui l'ai fait

:) :)

"AV"
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


MichDenis
Le #4567971
| 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 ?
;-))
AV
Le #4567751
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

Francois L
Le #4566471
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"
Voilà mon algo :
Ca me rappelle furieusement quelque chose...




--
François L



erwann67
Le #4565631
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
Publicité
Poster une réponse
Anonyme