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 :

Coloriser les jours fériés


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 31
    Par défaut Coloriser les jours fériés
    Bonjour,
    J'imagine que cette question a été posée plusieurs fois, mais je n'ai pas trouvé de réponse.
    Je souhaite faire un calendrier avec les classiques we et jours fériés.
    Je charge mon calendrier à l'ouverture du classeur en fonction de l'année sélectionnée.
    Voici le code pour les we, tout fonctionne normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        mois_test = mois + 1
        If mois_test = 13 Then mois_test = 1
          nb_jours_mois = Day(CDate(1 & "/" & mois_test & "/" & annee) - 1)
          For jour = 1 To nb_jours_mois
            date_en_cours = CDate(jour & "/" & mois & "/" & annee)
            'mise en forme de la date dans le calendrier avec ' et majuscule
            Cells(jour + 2, mois * 2 - 1) = "'" & UCase(Replace(Format(date_en_cours, "ddd dd"), ".", ""))
            jour_sem_en_cours = Weekday(date_en_cours)
            'samedi = 7 & dimanche = 1
            If jour_sem_en_cours = 7 Or jour_sem_en_cours = 1 Then
              'remplissage en bleu clair des we
              Cells(jour + 2, mois * 2 - 1).Interior.Color = RGB(205, 218, 239)
              Cells(jour + 2, mois * 2).Interior.Color = RGB(205, 218, 239)
            End If
    etc...
    J'ai les dates précédées d'une cote, exemple :
    'OCTOBRE
    'LUN 01
    'MAR 02 ...
    Dans une feuille jours_fériés j'ai ma liste de jours fériés pour l'année sélectionnée.
    Je souhaiterai que les jours fériés soit colorés de la même façon que les we.
    J'ai pensé à la mise en forme conditionnelle, mais comme les dates ne sont pas au même format, évidemment cela ne fonctionne pas.
    Y a t il une astuce pour le faire en VBA ?
    Ou avez-vous une autre idée ?
    Merci
    Cordialement
    Chris

  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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour sortir un calendrier annuel avec ou sans les Week-End et jours fériés avec ou sans couleur sur ceux-ci il n'y a pas besoin de code VBA. A l'aide de toutes les fonctions natives d'excel c'est réalisable.

    Bonjour,
    A propos de
    J'ai pensé à la mise en forme conditionnelle, mais comme les dates ne sont pas au même format, évidemment cela ne fonctionne pas.
    Si la valeur qui se trouve dans la cellule, est une date, la mise en forme conditionnelle fonctionnera, quelle que soit le format appliqué. Encore faut-il y mettre la bonne formule.
    Si tu expliquais comment sont organisées tes données, plage à formater, plage des jours fériés, adresses de celles-ci etc..., on pourrait peut-être t'aider.
    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
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    par 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
    25
    26
    27
    28
     
    Private Sub Workbook_Open()
     Dim d As Date, c As Variant
     d = #1/1/2012#
     For mois = 1 To 12
      jour = 1
      m = Month(d)
      Do Until m <> mois
       Sheets("Feuil1").Cells(jour, mois) = jour
     
       'couleur de la cellule pour le jour de la semaine
       Select Case Format$(d, "dddd")
       Case "samedi", "dimanche"
        Sheets("Feuil1").Cells(jour, mois).Interior.Color = RGB(200, 200, 200)
       End Select
     
       'couleur de la cellule pour le jour ferie
       Set c = Sheets("Feuil2").Range("A1:A6").Find(d, LookIn:=xlValues)
       If Not c Is Nothing Then
        Sheets("Feuil1").Cells(jour, mois).Interior.Color = RGB(200, 100, 200)
       End If
     
       jour = jour + 1
       d = d + 1
       m = Month(d)
      Loop
     Next mois
    End Sub
    Les jours feries sont listés dans cet exemple sur la feuille 2 de A1 à A6
    Il est possible de faire des adaptations pour l'affichage, les couleurs, etc

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut
    Tu peux aussi utiliser un calendrier perpétuel.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [AC-2007] Coloriser les jours fériés sur un planning
    Par TheKiki dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/05/2014, 12h27
  2. [SQL2005] Exclure les jours fériés
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/06/2009, 14h41
  3. problème pour enlevé les jours fériés
    Par titi67 dans le forum Général VBA
    Réponses: 2
    Dernier message: 12/05/2007, 11h44
  4. [Dates] Gestion d'un calendrier avec les jours fériés
    Par maximenet dans le forum Langage
    Réponses: 4
    Dernier message: 05/05/2006, 08h41
  5. Les jours fériés.
    Par davcha dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/01/2006, 14h03

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