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

Macros et VBA Excel Discussion :

requete de date sans les week-end


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut requete de date sans les week-end
    Bonjour a tous,

    Je voudrais effectuer une requete entre deux dates et connaitre ensuite le nombre de jours travailles entre ces dates donc d'exclure les week-end (management du personnel).

    Je suis plus que debutant et malgre quelques cours lus ici ou la sur internet je ne sais pas vraiment comment m'y prendre.
    Si quelqu'un connait une fonction ou une procedure, ou une idee qui pourrait m'oriente je suis preneur.

    Merci d'avance et pour les accents avec un clavier anglais c'est pas evident.

    A +

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le mieux est de passer par Excel. En A1 la date la plus ancienne, en B1 la plus récente. La formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.JOURS.OUVRES(A1;B1)
    Avec NB.JOURS.OUVRES, tu peux exclure les jours fériés et déterminer si le premier jour de la semaine est un lundi ou un dimanche. Jète un oeil dans l'aide pour l'utiliser.
    En VBA, tu as Workday. Les paramètres sont les mêmes sauf pour les jours fériés (enfin, je crois me souvenir de ça...)
    En cas de besoin, la réponse a déjà été donnée plusieurs fois sur le forum. Si tu as un pb pour utiliser une formule et que tu dois absolument passer par VBA, je regarderai si je trouve l'URL.
    A+

    PS - Bienvenue sur le forum

    Edit
    Pour workday je ne suis sûr de rien J'ai ça dans un code mais je ne parviens pas (plus ?) à le faire fonctionner. Un référence absente ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    Merci beaucoup pour cette reponse si rapide,
    en effet je dois obligatoirement passer par vba pour effectuer cet operation.
    si tu connais les liens url ca m'interesse vivement.
    A bientot et merci encore.

  4. #4
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    schématiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    count = 0
    for i = date1 to date2
     if weekday(i,vbMonday)<=5 then
       count = count + 1
     end if
    next i
    msgbox count

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Par défaut
    ok merci je pense que ce problem est resolu mais si tu repasses par la cafeine jaimerais bien comprendre la formule que tu m'as donne par exemple pour on commence par lundi et pas par dimanche et en bref comment fonctionne cette fonction.

    Autrement merci encore.

    A +

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour ajouter des jours ouvrés à une date pour connaître une échéance, par exemple, tu peux également utiliser l'utilitaire d'analyse et Workday
    Charger la macro complémentaire "Utilitaire d'analyse"
    Dans L 'Editeur VB -> Ajouter atpvbaen.xls en référence au projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub JoursOuvresAjouterVB()
    Dim LaDate As Double, NewDate As Date
        LaDate = CDbl(CDate("16/03/2007"))
        'ou
        'LaDate = CDbl(Cells(2, 1))
        'ou
        'LaDate = CDbl(Date)
        'date dans 5 jours ouvrés après LaDate
        NewDate = Format(Workday(LaDate, 5), "dd/mm/yyyy")
        MsgBox NewDate
    End Sub
    A tout hasard et parce que j'ai compris pourquoi workday ne fonctionnait pas
    (Ne s'utilise donc pas pour avoir le nombre de jours ouvrés entre deux dates)
    Une adresse qui peut t'être utile si tu as à déduire les jours fériés : http://www.developpez.net/forums/sho...ours+ouvrables

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/09/2014, 12h39
  2. Enlever les week-ends entre deux dates
    Par alitazichibi dans le forum Requêtes
    Réponses: 8
    Dernier message: 13/11/2012, 07h48
  3. Condition VBA J-4 sans les week end
    Par Naoned005 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 12/06/2012, 20h47
  4. [XL-2007] comment faire pr mettre a mon code les jours de la semaine sans le week end
    Par alexandrek dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/02/2011, 22h53
  5. Intervalle Date Sans Compter Les Week Ends
    Par datamind dans le forum Oracle
    Réponses: 6
    Dernier message: 05/05/2006, 18h14

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