Access, calcul entre deux dates

Maxou le petit Messages postés 47 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 21 mai 2007 - 20 mai 2007 à 17:58
dede62640 Messages postés 1 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 14 février 2008 - 14 févr. 2008 à 22:08
Bonjour;

J'ai besoin de calculer le nombre de jours entre 2 dates en excluant les jours de Week-end et les jours férié ainsi que d'autres jours. Dans excel il existe dans une macro complémentaire la fonction ci-dessous (Je pensais l'utilisée dans access, mais elle est inaccessible car protégée par un mot de passe !!!).

Peut elle être utiliser dans Access, ou existe t il un autre moyen pour arriver au même résultat ?

Fonction dans Excel : "NB.JOURS.OUVRES(date_début;date_fin;jours_fériés)"

D'avance merci.



Maxou le petit
A voir également:

9 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 mai 2007 à 18:15
0
Maxou le petit Messages postés 47 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 21 mai 2007
20 mai 2007 à 18:22
Ok pour la réponse elle m'avait été proposée, mais je n'arrive pas à la faire fonctionner dans Access, la fonction existante dans Excel me paraissait plus accessible mon niveau dans Access.
 
Date début, date fin, base de jours férié et Hop le tour est joué !

Quelqu'un peut-il me guider pour utiliser le code proposé par JM dans Access ?

Maxou le petit
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2007 à 18:27
Salut
En effet, le DateDiff de Access (ou de VB) n'est pas capable de calculer le nombre de jours oeuvrés (5j/sem) ou ouvrables (6j/sem).
Seule solution, faire une boucle de calcul (très difficile à mettre en oeuvre dans une requète) pour retrouver la date du premier samedi/dimanche puis en calculant le nombre de semaines complètes, je ne vois pas trop comment faire.
Je n'ai jamais été confronté au problème.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 mai 2007 à 19:07
Bon,

J'entrevois une solution "tirée par les cheveux"...
Like est utilisable par Access et dans les SQL

Idée :
Construire une chaîne de caractères composée des dates à exclure, de la forme suivante (exemple) :
 toto = "-01/01/2007-31/12/2006-27/08/2001-"

Seservir ensuite de Like dans ta SQL (ou titi est la date/filtre)

Private Sub Command1_Click()
 toto = "-01/01/2007-31/12/2006-27/08/2001-"
 titi = "31/12/2006"
 pasbon = "*-" & titi & "-*"
 MsgBox IIf(toto Like pasbon, "pas bon", "bon")
 titi = "31/12/2005"
 pasbon = "*-" & titi & "-*"
 MsgBox IIf(toto Like pasbon, "pas bon", "bon")
End Sub

Mais c'est vraiment tiré par les cheveux et il faudrait (si l'on ne veut pas une chaîne toto trop longue) ne réserver toto que pour les dates non ouvrables "extras" et s'y prendre autrement pour les samedis et dimanches.


S'il s'agit d'une base de données, il serait peut-être avantageux d'ajouter un champ "ouvrable" OUI/NON complétable automatiquement lors de l'enregistrement d'un article (selon le procédé indiqué plus haut pour les jours extras et autrement pour les samedis et dimanches) puis faire les requêtes en incluant ce champ dans la SQL.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
20 mai 2007 à 22:04
Salut,
Regardes par ici :
http://www.vbfrance.com/infomsg_CALENDRIER-JOURS-OUVRES-TEMPS-PASSAGE_945197.aspx#12
Si ça peut t' aider .

<hr />
© -Cannes, c' est juste une histoire d' escalier.
Mais moi ce qui m' inquiète, c' est plus la montée des eaux
que la montée des marches ! .    Rolling : l' agité du bocal.
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
21 mai 2007 à 09:03
Bonjour à tous,

Jmfmarques >> J'admire ta patience de répondre toujours à cette même question...lol..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
Maxou le petit Messages postés 47 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 21 mai 2007
21 mai 2007 à 18:18
Bonjour à tous merci effectivement pour votre patience, Exploreur à raison.

Je n'ai pas trouvé mon bonheur pour Access, je vais fonctionner en mode dégradé avec Excel pour le moment, mais je ne desespère pas !
 
Si j'avais pu faire sous Access (Fonction ou autre) un dérivé de ma formule sous Excel comme ci-dessous c'eut été le pied !!!

$L10-$G10-ENT(($L10-MOD($L10-JUn;7)-$G10+7)/7)-ENT(($L10-MOD($L10-JDeux;7)-$G10+7)/7)-(SOMMEPROD((Fer2>$G10)-(Fer2>$L10)))+SOMMEPROD(((JOURSEM(Fer2)=JOURSEM(JUn))+(JOURSEM(Fer2)=JOURSEM(JDeux)))*(Fer2>=$L10)*(Fer2<=$L10))<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>

G10 = Date début
L10 = Date Fin
JUn = Dimanche
JDeux = Samedi
Fer2 = Liste des jours à exclure (Férié, ARTT etc...)

Si quelqu'un a une idée sous Access, je suis toujours preneur...

Merci à tous.

Maxou le petit
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
21 mai 2007 à 18:42
Salut,
ne comptes pas trouver dans Acces une formules prédéfinis.
d' autant plus que c' est varie .
C' est à toi de tester sur une ton champ date :
Jour Ferie ou Non
Samedi ou Pas
Dimanche ou Pas


Tu gébnères donc un champ qui prendera 0 si c' est vrai et 1 si c' est Faux.
Il ne te restes plus qu' à faire la somme pour une période donnée.
Pour les jours fériés tu dois avair une table dont la quelle tu les répértories.
0
dede62640 Messages postés 1 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 14 février 2008
14 févr. 2008 à 22:08
bonjour a tous j'ai trouve une solutation pour le calcul des jours ouvrés.
Je prend en compte le lundi de pentecote et le lundi de paques, mais sa reduit le nombre de jour
0
Rejoignez-nous