OVH Cloud OVH Cloud

[VBA] Jour ouvré ou ferié ou non ??

8 réponses
Avatar
Nemroth
Bonjour à tous,

Je voudrais savoir comment on peut, en VBA, déterminer si une date (ex :
"05/21/2005" en format anglais mm/dd/yyyy, of course) est un jour ouvré (Lundi à
Vendredi) ou férié ou non, et si c'est le cas, retourner le premier jour ouvré
suivant...

Par avance merci
--
Pour me répondre en BAL, retirer le nospam...

8 réponses

Avatar
Joël
Bonsoir,

Tu devrais trouver ton bonheur sur

www.excelabo.net

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

www.joelgarbe.fr
(très petit contenu)
"Nemroth" a écrit dans le message de news:

Bonjour à tous,

Je voudrais savoir comment on peut, en VBA, déterminer si une date (ex :
"05/21/2005" en format anglais mm/dd/yyyy, of course) est un jour ouvré
(Lundi à

Vendredi) ou férié ou non, et si c'est le cas, retourner le premier jour
ouvré

suivant...

Par avance merci
--
Pour me répondre en BAL, retirer le nospam...


Avatar
AV
..........et si c'est le cas, retourner le premier jour ouvré suivant...


Si la macro complémentaire "Utilitaire d'analyse - VBA" (ne pas confondre avec
"Utilitaire d'Analyse" qui ne sert que pour les fonctions dans la feuille de
calcul)
est installée et une plages comportant les jours fériés nommée "jrF" :

MsgBox Format(Evaluate("workday(" & DateSerial(2003, 11, 8) * 1 & ",1," &
[jrF].Address & ")"), "dddd dd/mm/yy")

AV

Avatar
Nemroth
Bonsoir à tous et merci à Joël et AV,

Pour ce qui concerne Excelabo, j'ai bien vu des classeurs avec les jours fériés,
mais
pas de procédure VBA permettant de savoir si une date est ou non un jour ouvré
ou férié.
Peut-être que je n'ai pas tout vu tout lu... Des précisions SVP ?

Quant à la macro complémentaire "Utilitaire d'analyse - VBA", je ne la trouve
pas dans le VBE,
dans la liste des macros complémentaires...

Vous m'excuserez, mais j débute quelque peu en VBA

Par avance merci pour votre aide.

@+ Nemroth


..........et si c'est le cas, retourner le premier jour ouvré suivant...


Si la macro complémentaire "Utilitaire d'analyse - VBA" (ne pas confondre avec
"Utilitaire d'Analyse" qui ne sert que pour les fonctions dans la feuille de
calcul)
est installée et une plages comportant les jours fériés nommée "jrF" :

MsgBox Format(Evaluate("workday(" & DateSerial(2003, 11, 8) * 1 & ",1," &
[jrF].Address & ")"), "dddd dd/mm/yy")

AV


--
Pour me répondre en BAL, retirer le nospam...


Avatar
gee-dee-
Bonsoir,
déja publié ici il y a peu de temps
et issue du site Frédéric :
Fonction pour tester si un jour est férié ou non (fériés français, d'après
OP Erlandsen)
http://perso.wanadoo.fr/frederic.sigonneau/code/Calendriers/FonctionIsFerie.txt
et aussi
Utilisation de la fonction Evaluate pour trouver si un jour est férié ou non
http://perso.wanadoo.fr/frederic.sigonneau/code/Calendriers/EvaluateFeries.txt

@+
Avatar
Nemroth
Bonsoir à tous,

Un grand merci gee-dee

Je vais regarder ça tout de suite.

@+ Nemroth


Bonsoir,
déja publié ici il y a peu de temps
et issue du site Frédéric :
Fonction pour tester si un jour est férié ou non (fériés français, d'après
OP Erlandsen)
http://perso.wanadoo.fr/frederic.sigonneau/code/Calendriers/FonctionIsFerie.txt
et aussi
Utilisation de la fonction Evaluate pour trouver si un jour est férié ou non
http://perso.wanadoo.fr/frederic.sigonneau/code/Calendriers/EvaluateFeries.txt

@+


--
Pour me répondre en BAL, retirer le nospam...

Avatar
Papyty
Salut @ Tous,
Nemroth a écrit:
Quant à la macro complémentaire "Utilitaire d'analyse - VBA", je ne la trouve
pas dans le VBE,
dans la liste des macros complémentaires...

Vous m'excuserez, mais j débute quelque peu en VBA


Il faut cocher cette macro non pas dans VBA mais dans la feuille normale
menu /outils/macro complémentaire

--
@+
Thierry

Avatar
AV
Heu.... il me semble que la question n'est pas de tester si un jour est férié ou
non...
;-)
AV
Avatar
AV
Cette solution qui renvoie le 1° jour ouvré APRÈS la date examinée, ne me semble
pas répondre à la question initiale (???)

Si tel est le cas, solution renvoyant le 1° jour ouvré APRÈS la date examinée OU
la date elle-même, si c'est un jour travaillé
Le tout pour les 50 jours à suivre
- Pas d'utilisation de macros complémentaires
- Une plage comprenant la liste des jours fériés et/ou vacances nommée "jrF",
dans la feuille "LesJours" (à adapter)

Sub zz_Jour_Ouvré()
D = DateSerial(2003, 11, 8) * 1 'date du jour examiné
MsgBox Format(Evaluate("min(if((weekday(row(" & D & ":" & D + 50 &
"),2)<6)*(isna(match(row(" & D & ":" & D + 50 & ")," & "LesJours!" &
[jrF].Address & ",0)))," & "row(" & D & ":" & D + 50 & ")))"), "dddd dd/mm/yy")
End Sub

AV