Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007
-
20 mai 2007 à 17:58
dede62640
Messages postés1Date d'inscriptionmardi 12 février 2008StatutMembreDernière intervention14 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:
Ephemeride entre deux dates
Ephemeride calcul entre deux dates - Meilleures réponses
Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 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 ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 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.
dede62640
Messages postés1Date d'inscriptionmardi 12 février 2008StatutMembreDernière intervention14 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