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 :

Aide pour une fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Décembre 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Décembre 2020
    Messages : 38
    Par défaut Aide pour une fonction
    Bonjour,

    Pourriez-vous m'expliquer cette fonction pour calculer le nombre de jours ouvrés svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For i = Début * 1 To Fin * 1 Step TimeValue("0:10")
        If Hour(i) >= 8 And Hour(i) < 18 And Day(i) = Day(i + TimeValue("0:10")) _
            And Application.CountIf([PlageFériés], CDate(Int(i)) * 1) = 0 _
            And Weekday(CDate(Int(i)) * 1, 2) < 6 Then x = x + 10
        Next
        HeureOuvrées = x / 1440
    - Weekday prend une date et renvoi le numéro du jour de la semaine, c'est ça ?
    - CDate converti une date en date ?
    - TimeValue, je n'ai pas compris...
    - Pourquoi diviser par 60*24=1440 à la fin svp ?

    Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Depuis XL2007, on dispose de la fonction NB.JOURS.OUVRES.INTL (Excel) qui compte les jours ouvrés selon un régime hebdomadaire (par défaut Sam et Dim non prestés) et une plage optionnelle de dates de congés. Il faut noter que les deux jours bornes sont comptés.

    Elle peut s'utiliser en VBA => NETWORKDAYS.INTL

    Perso, pour le régime hebdomadaire, j'aime bien la chaine de caractères (non reprise dans la liste Excel) dans laquelle le 0 représente un jour ouvré et le 1 un jour férié, les sept positions allant du lundi au dimanche:
    "0000011": régime habituel (sam et dim fériés);
    "0001011": on travaille les un, mar, mer, ven et pas le jeu, sam, dim.


    Astuce: Ca permet de compter le nombre de fois qu'un jour de la semaine particulier est présent dans une plage de dates: "0111111" permet de compter le nombre de lundis entre deux dates, ces dates comprises.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre averti
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Décembre 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité

    Informations forums :
    Inscription : Décembre 2020
    Messages : 38
    Par défaut
    Merci beaucoup de votre aide

Discussions similaires

  1. Exécution d'une fonction VBA excel
    Par jekixu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2007, 09h39
  2. tester une fonction vba
    Par Maxence45 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/11/2007, 17h01
  3. Documenter une fonction vba sous excel
    Par massalf dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/10/2007, 21h42
  4. [VBA-E] Une fonction Excel dans une fonction VBA
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/07/2006, 10h21
  5. Réponses: 8
    Dernier message: 29/06/2006, 15h37

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