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 :

Transformer jour ouvré en durée calendrier [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 317
    Par défaut Transformer jour ouvré en durée calendrier
    Bonjour à tous,

    Dans mon code j'ai une durée "Nbj" qui est en jours ouvrés, pour la transformée en jour calendaire et sélectionner la plage correspondante j'ai fais ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    For CC = CC To Nbj 'Nbj à été multiplier par 2 car mon clandrier est en 1/2 journée(par colonne)
     
    If .Cells(3, CC) <> "" Then 'les dates du calendrier sont sur la ligne 3, je récupère les valeurs pour les conditions
    dates = .Cells(3, CC)
    jour = WeekdayName(Weekday(.Cells(3, CC) - 1))
    D = Day(.Cells(3, CC))
     M = MonthName(Month(.Cells(3, CC)))
     Dim tmpDate As Date, jDate As Date
     tmpDate = fLundiPaques(H)
     jDate = CDate(.Cells(3, CC))
      End If
     
     If jour = "samedi" Or jour = "dimanche" Or (M = "janvier" And D = 1) Or (M = "mai" And D = 1) Or (M = "mai" And D = 8) _
     Or (M = "juillet" And D = 14) Or (M = "août" And D = 15) Or (M = "septembre" And D = 1) Or (M = "novembre" And D = 11) _
     Or (M = "décembre" And D = 25) Or jDate = tmpDate Or jDate = tmpDate + 38 Or jDate = tmpDate + 49 Or Nbj = CC Then
     'si vrait, je rajoute 2
     Nbj = Nbj + 2
      End If
     
     
    Next CC
     .Range(.Cells(3, Cd), .Cells(3, CC)).Select 'une fois la boucle terminée je sélectionne la plage de cellule
     Palette.Show
    Mon code ne fonctionne pas, par exemple pour 10 jour ouvrés, il me manque 1 jour calendaire, pour trois jour j'en ai parfois trop, ou bien pas asses

    Ce qu'il me faudrait c'est une fonction qui à partir de la date de début me transforme les jours ouvrés en jours calendaire mais là ça dépasse mes compétences en vba et je n'ai rien trouvé lors de mes recherches, à croire que tous le monde veut transformer des jour calendaire en jour ouvrés et pas l'inverse

    Merci d’avance pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    le plus simple est que tu te serves de la fonction SERIE.JOUR.OUVRE() d'excel.
    Le pb est qu'elle semble mal réagir à Evaluate() dans VBA. Donc calculer dans une feuille (que tu pourras masquer) et récupérer le résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
        Dim dateDébut As Date, dateFin As Date, nbJoursOuvrés As Long
        '
        dateDébut = CDate("1/5/2013")
        nbJoursOuvrés = 15
        '
        [Fériés!B1] = Year(dateDébut)
        [Fériés!D18] = dateDébut
        [Fériés!D19] = nbJoursOuvrés
        dateFin = [Fériés!D20]
    End Sub
    Voir fichier joint

    eric
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Liste déroulante avec calendrier jours ouvrés.
    Par callista dans le forum Excel
    Réponses: 3
    Dernier message: 30/06/2010, 19h58
  2. [BO 6.51] durée en jour ouvré et heure "ouvrée"
    Par aurelie83 dans le forum Deski
    Réponses: 1
    Dernier message: 12/02/2008, 18h20
  3. [Conception] Calendrier - Gestion des jours ouvrés
    Par eXiaNazaire dans le forum Général Java
    Réponses: 3
    Dernier message: 16/02/2006, 10h25
  4. Compter le nb de jours ouvrés entre 2 dates
    Par bugmenot dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/09/2005, 13h19
  5. [Info] Jours ouvrés entre 2 dates
    Par Dinytro dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 10/08/2005, 16h05

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