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 :

[VBA] Calcul d'écart entre deux dates en jours ouvrés et ajout de formule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA] Calcul d'écart entre deux dates en jours ouvrés et ajout de formule
    Bonjour à tous,

    j'ai besoin d'effectuer un calcul de différence entre deux dates, en ne prenant en compte que les jours ouvrés et en excluant les jours fériés.

    N'ayant pas trouvé de fonction VBA répondant à ce besoin, j'ai eu l'idée (bonne ou mauvaise) de passer par la fonction nb.jours.ouvres de Excel.
    Pour se faire, je dois au milieu de mon code, remplir une cellule avec la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =nb.jours.ouvres(" & Cells(ligne, "M").Value & ";" & Cells(ligne, "N").Value & ";Paramètres!E2:E80)
    J'ai essayé plein de technique (y compris celle issue de la macro enregistrée manuellement) j'ai une erreur
    Erreur d'exécution '1004' Erreur définie par l'application ou par l'objet
    Pour info, j'ai essayé de mettre la formule avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Formula, Range("S2").FormulaR1C1, Range("S2").Formula, Range("S2").value
    , j'ai la même erreur.

    Si quelqu'un avait une fonction qui rempli déjà mon besoin, ou une idée pour que je puisse m'en tirer...

    Merci à tous.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.


    Quelques pistes pour t'aider.
    Je suppose que tu as vérifié que la fonction était bien installée et diponible.
    En VBA, si tu veux définir la formule, c'est soit FormulaLocal, soit en anglais : NETWORKDAYS(), je crois.
    Les arguments ne doivent pas être renseigné en valeur mais en référence = adresses des cellules qui contiennent les dates. Je crois.
    Tu dois définir la liste des jours fériés.

    Sinon il y a des procédures qui font le calcul sans passer par la fonction Excel.

    En espérant que cela t'aide,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse pgz.

    Pour des problèmatiques de déploiement de l'outil, je ne peux pas partir sur la solution de la dll

    J'ai réussi toutefois à avancer sur le soucis en passant par Application.Run("nb.jours.ouvres", CDate(Cells(ligne, "B").Value), CDate(Cells(ligne, "C").Value))
    Cela fonctionne, mais lorsque je veux passer les jours fériés, ben ça ne marche plus; à savoir, si je mets une date, cela fonctionne, dès que j'en mets plusieurs, j'ai une erreur 13.
    Donc reblocage :'(

    Pour les autres procédures existantes, je n'ai trouvé que Datediff qui ne correspond pas à mes besoins (elle ne prend pas en compte la notion de JO et de jours fériés)

    Si quelqu'un à une idée.

    Merci

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Pour se faire, je dois au milieu de mon code, remplir une cellule avec la formule suivante : =nb.jours.ouvres(" & Cells(ligne, "M").Value & ";" & Cells(ligne, "N").Value & ";Paramètres!E2:E80)

    J'ai essayé plein de technique (y compris celle issue de la macro enregistrée manuellement) j'ai une erreur "Erreur d'exécution '1004' Erreur définie par l'application ou par l'objet"

    Pour info, j'ai essayé de mettre la formule avec ActiveCell.Formula, Range("S2").FormulaR1C1, Range("S2").Formula, Range("S2").value, j'ai la même erreur.

    tu dois utiliser FormulaLocal si tu écris ta formule en français


    bonne soirée
    michel

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu as en FAQ une procédure VBA ici
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

Discussions similaires

  1. Difference entre deux dates en jours ouvrés
    Par sabson dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 05/05/2013, 22h18
  2. [AC-2010] Calculer la différence entre deux dates, en jour, dans une requête
    Par Just-Soft dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/10/2010, 02h19
  3. Réponses: 3
    Dernier message: 09/09/2010, 17h47
  4. [VBA-E] Calculs d'écarts entre 2 dates
    Par harpic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/12/2006, 16h48
  5. [VBA] Calculer la différence entre deux dates
    Par T'chab dans le forum Access
    Réponses: 13
    Dernier message: 11/05/2006, 15h12

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