IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Calcul jours ouvrables (Samedi compris)


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut Calcul jours ouvrables (Samedi compris)
    Bonjour,

    Je dispose d'une date de début et une date de fin de contrat. Je dois pouvoir déterminer le nombre de jours ouvrables (samedi compris et dimanche NON compris) restant au jour d'aujourd'hui.

    Comment intégrer le calcul du samedi de chaque semaine ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    en principe

    tu fais (monjour-x)\7
    ici x est une valeur entre 0 et 6
    qui te renvoie le nombre de jours de type x écoulés depuis le 1 janvier
    1900

    le calcul va donc s'effectuer
    avec y=((datefin-x)\7)-((datedébut-x)\7))
    et datediff(début;fin)-y

    et les jours fériés

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Merci pour l'effort ... je ne pense pas avoir tout compris

    mais j'ai tout de même appliqué ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    y = ((DateFin - 1) \ 7) - ((DateDebut - 1 \ 7))
    TxtReste = DateDiff (DateDebut;DateFin)-y
    Je ne vois pas comment determiner le X ? apparement, la synthaxe de la fonction Datediff() n'est pas correcte

    Merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    pour samedi x vaut 0 pour dimanche 1

    j'ai juste fait référence à la fonction pour te donner une indication
    recherche dans l'aide

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Merci en tout cas pour la précision.

    Voila ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    y = ((DateFin - 0) \ 7) - ((DateDebut - 0 \ 7))
    TxtReste = (DateFin - DateDebut) - y
    ou bien
    TxtReste = DateDiff("d", DateDebut, DateFin) - y
    Voila ce que j'ai en réponse ... Soit un exemple :

    Date début : 12/01/2005
    Date de fin : 12/02/2005

    06/12/1989 ou au format numérique : 32840

    Y a qq chose qui cloche ?!

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    il y a peut etre plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim i as Date
    Dim compteur as Integer
     
    For i = DateDeb to DateFin
     If WeekDay(i, vbMonday) <> 6 Then
       compteur = compteur + 1
     End If
    Next i

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Citation Envoyé par priest69
    Voila ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    y = ((DateFin - 0) \ 7) - ((DateDebut - 0 \ 7))
    Voila ce que j'ai en réponse ... Soit un exemple :

    Date début : 12/01/2005
    Date de fin : 12/02/2005

    06/12/1989 ou au format numérique : 32840

    Y a qq chose qui cloche ?!
    pas qq chose mais quelqu'un moi
    pardon pardon-((datedebut-0)\7)
    il n'est pas nécessaire de mettre moins 0

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 114
    Points : 46
    Points
    46
    Par défaut
    Okay, je vois mieux merci aussi Cafeine ... mais avec la soluce de Random .. pourrai je avoir 2 jours au lieu au lieu d'une seule entrée ? Ex. Samedi et Dimanche ?

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    si c'est deux jours, il suffit d'adapter mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim i as Date
    Dim compteur as Integer
     
    For i = DateDeb to DateFin
     If WeekDay(i, vbMonday) < 6 Then
       compteur = compteur + 1
     End If
    Next i

  10. #10
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Sinon y a aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [datefin] - [datedeb] _
       - (DateDiff("ww", [datedeb], [datefin], vbSunday) - (Weekday([datedeb]) = vbSunday)) _
       - (DateDiff("ww", [datedeb], [datefin], vbSaturday) - (Weekday([datedeb]) = vbSaturday))
    pour enlever les WE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [datefin] - [datedeb] _
       - (DateDiff("ww", [datedeb], [datefin], vbSunday) - (Weekday([datedeb]) = vbSunday))
    pour n'enlever que les dimanches

Discussions similaires

  1. Calcul jours ouvrables en un mois
    Par smiles dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 23/07/2010, 11h15
  2. [A-03] Calculer jours ouvrables à partir d'1 date
    Par MaryR dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/01/2009, 21h39
  3. calcul jours ouvrables
    Par Nadgaste dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/01/2009, 14h04
  4. calcul jours ouvrables access
    Par laurent.G dans le forum Access
    Réponses: 3
    Dernier message: 21/07/2006, 16h14
  5. Calcul Jours Ouvrables
    Par beurnoir dans le forum Access
    Réponses: 8
    Dernier message: 26/10/2005, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo