Excel Exercice
RSS
  • Apprendre Excel
    • 1-Les termes d’Excel
    • 2-Calculs de base
    • 3-Format des nombres
    • 4-Utiliser les cellules dans les calculs
    • 5-Copier Coller
    • 6-Déplacement à la souris
    • 7-Exercice Calculs simple
    • 8-Fonction SOMME
    • 9-Exercice SOMME, MIN, MAX
    • 10-Dollar dans les formules
  • Tests Excel
  • Exercices Excel
  • Fonctions
  • Astuces
  • Contact
  • English

Articles les plus vus

  1. Comparer 2 colonnes (166 816)
  2. Fonction SI (145 478)
  3. Création d’un calendrier automatique (131 099)
  4. Fonction DATE – ANNEE – MOIS – JOUR (108 015)
  5. Changer la couleur à partir du résultat d’une formule (102 558)
  6. Fonction NB.SI.ENS (101 991)
  7. Fonction RECHERCHEV (101 370)
  8. Calcul avec des heures dans Excel (86 580)
  9. Diagramme de Gantt (78 867)
  10. Comment faire plusieurs SI (78 546)
Date et Heure,Mise en forme conditionnelle

Création d’un calendrier automatique

Temps de lecture : 7 minutes
Nombre de vues : 131 099
Dernière mise à jour le 27/02/2023

Cet article va vous montrer comment changer la mise en forme (date, couleur) d'un calendrier d'un mois sur l'autre.

Si vous souhaitez enregister les données d'un mois sur l'autre, vous pouvez acheter le classeur suivant qui fait ce travail comme c'est expliqué dans cette vidéo.

Télécharger le fichier avec enregistrement des données

Commençons par créer la feuille de calculs suivante : nous avons uniquement la liste de nos employés en colonne A.

Calendrier_Automatique_1

Nous nous plaçons ensuite en cellule A1 pour créer notre menu déroulant afin de pouvoir sélectionner les mois.

Ajout du menu Développeur dans le ruban

Assurez-vous d'avoir le menu développer d'affiché dans votre ruban. Si tel n'est pas le cas, allez dans le menu Fichier > Options > Personnaliser le ruban, puis cliquez sur le menu Développeur.

Calendrier_Automatique_2

Insertion d'un objet Menu déroulant

Maintenant, dans votre Ruban, sélectionnez Développeur >  Insérer > Zone de liste déroulante

Calendrier_Automatique_3


Cliquez et étirez pour faire apparaître votre objet "Menu déroulant" dans votre feuille de calculs

Calendrier_Automatique_4

Maintenant, nous allons créer la liste des mois quelque part dans notre classeur.

Calendrier_Automatique_5

Dans le cas de figure présent, j'ai besoin d'au moins 32 colonnes de disponibles pour mon calendrier (maximum de jours dans 1 mois + une colonne pour le nom des employés).

Ne perdez pas de temps à écrire les mois les uns à la suite des autres, la poignée de recopie le fait pour vous.

Lié le menu déroulant à une cellule

Il ne reste plus qu'à lier l'objet "Menu déroulant" à une cellule du classeur pour récupérer la valeur sélectionnée.

  1. Sélectionnez votre objet Menu déroulant
  2. Faites un clic-droit
  3. Sélectionnez Format de contrôle
Calendrier_Automatique_6

La boîte de dialogue suivante s'ouvre

Calendrier_Automatique_7

Dans l'onglet Contrôle

  • Sélectionnez la plage de données contenant les mois que vous avez écrits
  • Sélectionnez la cellule A1 comme cellule liée

Maintenant, si vous sélectionnez le mois de Mai, la cellule liée contiendra la valeur 5. Si vous sélectionnez Septembre, la valeur dans la cellule liée sera 9 et ainsi de suite.

Pourquoi avoir choisi spécifiquement la cellule A1 ? Tout simplement parce que le menu déroulant va masquer le résultat de la la cellule liée à vos utilisateurs

Menu déroulant pour les années

Reproduisez les mêmes manipulations pour les avoir un menu déroulant pour les années

  • Insérez un nouveau menu déroulant
  • Sélectionnez ensuite la colonne contenant les années
  • Liez cette fois à la cellule A2

Etape 2 : Créer la date en fonction du mois et de l'année sélectionnés

Nous allons maintenant créer une formule qui va récupérer les cellules liées A1 (pour les mois) et A2 (pour les années)  pour retourner une date.

Nous allons utiliser la fonction DATEpour calculer le premier jour du mois correspondant aux sélections des 2 menus déroulants. Pour les autres jours, la formule est plus simple

Pour A1, la cellule du mois, c'est très simple ; il suffit de reprendre la donnée telle quelle dans la formule

Pour A2, le menu déroulant va retourner les valeurs 1, 2, 3, ... correspondant à la valeur saisie. Pour faire coïncider cette valeur avec une année, il faut rajouter une valeur fixe. Par exemple, il faut ajouter 2014 à la cellule liée pour créer l'année 2015.

La formule est donc

=DATE(A2+2014;A1;1)

Calendrier_Automatique_8

Etape 3 : Création des autres jours du mois

Pour calculer les autres jours, la formule est plus facile.

Il suffit de rajouter 1 à la cellule précédente et de recopier cette formule sur la plage de données C6 jusqu'à AF6

=B6+1

Calendrier_Automatique_9a

Etape 4 : Changer le format de la date et l'orientation

Dans cette étape, nous allons changer le format des dates pour faire apparaître le jour en lettre et en chiffre

  • Sélectionnez toutes vos dates de la ligne 6 (de B6 à AF6)
  • Ouvrez la boîte de dialogue du format des nombres (raccourci clavier Ctrl + 1 ou Accueil>Format des nombres>Autres formats numériques ...
  • Sélectionnez la catégorie Personnalisée et entrer le format jjj jj dans la zone Type

Etape 5 : Changer l'orientation du texte

Maintenant, nous allons changer l'orientation des dates pour les afficher verticalement.

  • Sélectionnez les cellules B6:AF6
  • Allez dans le menu Accueil>Orientation>Rotation du texte vers le haut
Calendrier_Automatique_12

Et pour finir le travail, ajuster la taille des colonnes de B à AF

  • Sélectionnez les colonnes de B:AF
  • Faites un clic-droit sur l'en-tête des colonnes
  • Choisissez l'option Largeur de colonnes
  • Indiquez une largeur de 2.5
Calendrier_Automatique_13

Etape 6 : Mise en forme

Le calendrier est très bien avancé. En changeant les valeurs dans les menus déroulants, vous voyez que votre document est déjà très fonctionnel.

Ajoutez des bordures ainsi que de la couleur et votre calendrier devient très zoliiiii

Calendrier_Automatique_14

Etape 7 : Ajoutez un titre dynamique

Nous allons maintenant créer un titre qui va s'adapter au mois et à l'année sélectionnée.

Première et dernière date du mois

Nous avons déjà vu dans cet article, comment créer le premier et le dernière jour d'un mois.

La formule pour la premier jour est :

=DATE(A2+2014;A1;1)

La formule pour la date du dernier jour du mois est :

=DATE(A2+2014;A1+1;1)-1

Formule pour le titre dynamique


Il ne nous reste plus qu'à insérer ces 2 fonctions dans une fonction TEXTE pour afficher les mois des dates en lettres

="Période du "&TEXTE(DATE(A2+2014;A1;1);"jj mmmm aaaa")&" au "&TEXTE(DATE(A2+2014;A1+1;1)-1;"jj mmmm aaaa")

Et le résultat devient :

Calendrier_Automatique_15

A chaque fois que vous changez le mois ou l'année, votre titre se modifiera

Etape 8 : Changer la couleur des week-ends et des jours fériés

Pour changer les couleurs des jours féries, nous utiliserons les mises en forme conditionnelles.

Pour que notre calendrier soit effectivement automatique, nous devons créer 2 règles pour la mise en forme conditionnelle ; une pour les week-ends et une autre pour les jours fériés.

Couleur pour les week-ends

  1. Sélectionnez votre plage de données B6:AF13
  2. Créer une nouvelle règle de mise en forme (Accueil>Mise en forme conditionnelle>Nouvelle règle)
  3. Sélectionnez l'option Utilisez une formule pour déterminer sur quelles cellules le format sera appliqué
  4. Ecrivez la formule =JOURSEM(B$6;2)>5
  5. Changez la couleur de remplissage (ici de l'orange)
Calendrier_Automatique_16

Couleur pour les jours fériés

Ici, nous devons intégrer à notre classeur la liste des jours fériés de votre pays. En cliquant sur ce lien, vous trouverez la liste des jours fériés français dynamiques (Jour de Pâques recalculé selon l'année)

Dans notre exemple, ajoutez ces données dans une nouvelle feuille de calculs de votre classeur avec comme nom Feuil2.

Calendrier_Automatique_17

La formule pour cette règle est différente du calcul précédent. Ici, nous utiliserons la fonction NB.SI.ENS

  1. Sélectionnez votre plage de données B6:AF13
  2. Créez une nouvelle règle de mise en forme (Accueil>Mise en forme conditionnelle>Nouvelle règle)
  3. Sélectionnez l'option Utilisez une formule pour déterminer pour quelles cellules le format sera appliqué
  4. Ecrivez la formule =NB.SI.ENS(Feuil2!$B$3:$B$15;B$6)>0
  5. Changez la couleur de remplissage en rouge

Contrôle de la création des mises en forme conditionnelles

Ouvrez le manager de règles conditionnelles (Accueil>Mise en forme conditionnelle>Gérer les règles), vous pouvez visualiser les 2 règles créées dans votre feuille de calculs.

N'oubliez pas de sélectionner l'option "Cette feuille de calcul" dans le premier menu déroulant

Calendrier_Automatique_18

Etape 9 : Masquer les dernières colonnes par Macro

Comme tous les mois n'ont pas le même nombre de jours, il faut créer un programme pour qu'Excel masque les colonnes pour les jours au-delà du mois sélectionné.

Toutes les explications sur le code vous sont données dans cet article

Le programme va lire les colonnes AD, AE et AF pour vérifier que la valeur du mois dans ces cellules est égale à la valeur contenue en A1 (valeur du mois sélectionné). Si ce n'est pas le cas, la colonne est masquée.

  1. Appuyez sur les touches Alt + F11 pour ouvrir le Visual Basic Editor
  2. Depuis la barre de menu, sélectionnez Insertion>Module
  3. Copiez le code suivant
Sub Masquer_Jour()
Dim Num_Col As Long
   For Num_Col = 30 To 32     ' Boucle sur les cellules des jours 29, 30 et 31
      If Month(Cells(6, Num_Col)) >= Cells(1, 1) Then
         Columns(Num_Col).Hidden = True
      Else
         Columns(Num_Col).Hidden = False
     End If
   Next  
   Range("B6:AF13").ClearContents  'Supprime le contenu dans les cellules
End Sub

Etape 11 : Lier les menus déroulants à la macro

Calendrier_Automatique_20

Pour terminer notre classeur, nous allons lier les 2 menus déroulants avec le code que nous venons de créer.

  1. Sélectionnez l'un de vos menus déroulants
  2. Faites un clic-droit
  3. Sélectionnez Assignez une macro
  4. Sélectionnez le nom de votre macro
  5. Validez

Maintenant, à chaque fois que vous sélectionnez un mois ou une année dans les menus déroulants, votre calendrier se mettra à jour et les colonnes se masqueront (ou s'afficheront) automatiquement

Changer la couleur des week ends et jours feries dans un calendrier

Vidéo explicative

Date et Heure,Mise en forme conditionnelle
Frédéric LE GUEN

210 Comments

  1. LBATIRAMA
    13/03/2023 @ 18:37

    Bonjour,

    J'ai réalisé votre tutoriel à la lettre, excepté les jours fériés et la macro car cela n'a pas fonctionné mais pas trop grave, en revanche, petit problème, je souhaite mettre des couleurs dans les cases sous les jours. Je m'explique: A la place des employés, je met les noms des chantiers, et sous les jours, j'aimerai par exemple, en jaune les rendez vous de chantier, en bleu la fabrication et en rouge la pose admettons, histoire de voir l'avancement des dossiers au files des semaines, mais lorsque je change de mois, les couleurs et les noms des chantiers restent les même, se superposent sur les samedi et dimanche ... Pouvez vous m'aider?

    Cordialement, LBATIRAMA SA

    Reply

    • Frédéric LE GUEN
      14/03/2023 @ 03:25

      Ce que vous cherchez à faire c'est un suivi de projets et il y a des outils qui traitent de ce point en particulier, comme Microsoft Project sous votre licence 365. Excel n'est pas fait pour ça, c'est trop lours à gérer

      Reply

  2. Gays
    14/10/2022 @ 15:44

    Bonjour,

    Je n’arrive pas a faire la Macro et je ne sais pas pour quoi. Pouvez-vous m’aider ?

    Reply

  3. MidasRm
    11/10/2022 @ 04:25

    Bonjour

    Svp comment programmer ce calendrier sur 12 mois ?

    Reply

    • Frédéric LE GUEN
      13/10/2022 @ 04:09

      Il suffit de continuer de recopier la formule mais sur 12 mois (soit 365 colonnes)

      Reply

    • Marc Lepretre
      18/11/2022 @ 08:27

      Bonjour,
      J'ai pris sur votre explication pour faire également une calendrier automatique mais les jours des mois sont en lignes et pas en colonne.
      Le souci c'est que pour la macro si je copie colle ça ne marche pas et si je remplace les col par des rows ça efface tout mon tableau .
      Avez vous une aide a m'apporter pour mon calendrier

      Reply

  4. Duroc Laurent
    10/09/2022 @ 17:14

    Bonjour Mr Le Guen
    excel 2007 ne fait pas référence avec d'autre feuille pour les critères de mise en forme conditionnelle.
    du coup j'ai essayé en copiant les jours fériés sur la feuille du calendrier mais ça marche pas.
    Bien cordialement
    Laurent Duroc

    Reply

  5. Fano
    05/09/2022 @ 14:43

    les contenus sont bien effacés quand on passe d'un mois à un autre ou d'année mais on ne les retrouve plus si on revient au mois / année initial 🙁

    Reply

    • Frédéric LE GUEN
      06/09/2022 @ 15:36

      Oui, comme c'est écrit dans l'article, ce n'est pas l'objet de l'article. La programmation d'un tel calendrier (avec enregistrement des données d'un mois sur l'autre) est extrêmement complexe. C'est un vrai travail de programmation

      Reply

  6. nico
    29/07/2022 @ 20:16

    Bonjour,

    j'ai suivi toute la vidéo, je vous remercie elle m'a été d'une grande aide.
    Cependant j'aimerai rajouter une fonction qui permet de verrouiller les cellules (colonnes) correspondantes aux jours fériés et week-end.
    Est-ce-que vous pouvez me dire comment faire svp ?

    Merci

    Reply

    • Frédéric LE GUEN
      29/07/2022 @ 21:49

      Pour que soit automatique, il faut que ca soit gère par la macro et c'est vraiment très complique

      Reply

  7. leger
    31/05/2022 @ 10:03

    Bonjour,

    Est-il possible de faire la même chose avec les numéros de semaines?
    Merci d'avance

    Reply

  8. gege
    13/05/2022 @ 12:48

    Merci infiniment pour ce partage !!!!!!!!!!!!!!!!!

    Reply

  9. dz
    02/12/2021 @ 12:55

    Bonjour,

    Je ne trouve pas comment générer ce calendrier sous format trimestriel. Donc avec un affichage par 3 mois sur la bande de calendrier et T1 /T2/T3/T4 dans le menu déroulant...?

    Reply

    • GERALD
      22/04/2022 @ 22:30

      BONSOIR
      POUR LA MACRO IL FAUT ALLER SUR YOUTUBE ET CELA MARCHE A MERVEILLE
      MERCI POUR CE TUTO

      Reply

  10. Ghizlane
    07/02/2021 @ 18:06

    Bonjour,

    depuis plusieurs jours, je tente la Macro mais rien n'y fait elle ne fonctionne pas sachant que j'ai refait le calendrier comme vous.
    y aurait-il d'autres solutions?

    merci par avance.

    Reply

  11. Deboffle
    04/02/2021 @ 13:59

    Bonjour, je n'arrive pas à figer un contenu dans un mois comme dans votre exemple avec le chiffre 1.

    Lorsque ce chiffre est inscrit par exemple le 3 février et que je vais ensuite au mois de mars, il n'apparait pas et ça c'est bien.

    Par contre quand je reviens au mois de février, il n'y apparait plus.

    Cordialement

    Laurent D

    Reply

    • Natacha
      06/01/2022 @ 11:21

      Bonjour,

      Je rencontre la même problématique.
      Ce qui parait plutôt logique compte de cette ligne de code "Range ("...").ClearContents".
      Mais dans ce cas il nous manque info...

      Natacha

      Reply

      • Natacha
        06/01/2022 @ 11:36

        Alors, j'ai eu l'info plus bas !
        En fait, notre demande nécessiterait un développement plus complexe (ce qui n'était pas le but dans ce tuto).
        S'il existe un tuto à ce sujet, je suis preneuse, même s'il faut y passer du temps.
        Car tel quel, malheureusement ce tableau ne m'est pas utile.

        Merci tout de même pour ce tuto, hyper intéressant !!!

        Natacha

      • Frédéric LE GUEN
        06/01/2022 @ 12:05

        C'est exactement cela. Il y a tellement de situations de planning possible qu'il est impossible de proposer une solution simple pour tout le monde. Et puis à partir du moment où on doit gérer une sauvegarder des données avec le réaffichage des valeurs des mois précédents, ça demande une bonne centaine de ligne de code en VBA (au minimum).

  12. Eric R.
    21/01/2021 @ 21:02

    Bonsoir,
    Merci pour vos tutos, ils sont vraiment d'une aide précieuse.

    Concernant la modification automatique des derniers jours du mois, comment peut-on limiter le masquage à un groupe de cellules plutôt qu'à des lignes ou des colonnes ?

    Merci pour votre aide précieuse.
    Eric

    Reply

    • Frédéric LE GUEN
      22/01/2021 @ 11:38

      Bonjour, Je ne comprends absolument pas le besoin et l'intérêt de conserver seulement qques cellules du mois suivant.
      Dans tous les cas, dès que les règles se complexifient, l'écriture du code est bien plus difficile et longue à réaliser.

      Reply

      • Eric R.
        24/01/2021 @ 10:08

        Bonjour,

        Je me suis certainement mal exprimé.
        Dans une feuille de calcul, dont je me sers pour éditer le bulletin de salaire de la nounou qui garde notre fils, j'ai inséré une grille verticale pour indiquer le nombre d'heures effectuées chaque jour. Je me sers de cette grille pour calculer le nombres d'heures mensuelles et gérer le bulletin de salaire
        Cette grille fait partie intégrante du bulletin donc si je suis la procédure qui modifie les jours et qui remplace les dernières lignes du mois en fonction du mois en cours, cela masque des lignes de mon bulletin de salaire.
        Je souhaiterais donc limiter cette action à la plage de cellules utilisée pour ma grille où je saisis les heures de la nounou.

      • Eric R.
        11/02/2021 @ 09:35

        Bonjour,

        J'ai trouvé la solution à mon problème par une simple MFC sur ma plage de cellules verticale :
        =SOMMEPROD((JOUR($J$8:$J8)=JOUR($J8))*1)>1

        J8 étant la première cellule comprenant le 1er jour du mois.

      • Adriana Dos Santos
        08/03/2021 @ 10:03

        Bonjour,
        J'ai suivi pas à pas les consignes de la vidéo mais en arrivant à la macro, ça ne marche pas. J'ai tout essayé... copier-coller à partir du site internet, à partir d'un code laissé ici dans les commentaires, en copier lettre par lettre le code de la vidéo qui est différent de celui du site internet... et rien... les jours du mois suivants apparaissent à la fin du mois précédent.
        Que puis-je faire?
        Merci pour votre aide!

      • Frédéric LE GUEN
        08/03/2021 @ 12:03

        Il peut y avoir mille raison pour lesquelles votre code ne fonctionne pas.
        Avez-vous lu l'article suivant qui explique ligne à ligne comment fonctionne la macro ?

    • Balikou
      15/04/2022 @ 15:07

      Bonjour,
      Dans ce cas pourriez vous nous aider avec ce code VBA. Sinon je pense que le tuto est inachévé.

      Reply

  13. Lea
    14/01/2021 @ 17:21

    Bonjour,

    Merci pour ce tuto, qui m'a bien aidé, néanmoins, mes listes déroulantes sont "mois et année", lorsque je suis sur janvier et que je renseigne les variables associés.
    Ex: nombre d'heures effectuées sur janvier
    et que je passe sur février je retrouve mes données de janvier... Alors que ça devrait être vide.
    Je ne trouve et rien et je ne comprends pas pourquoi ça fait ça.
    Aidez moi svp

    Merci d'avance,

    Lea

    Reply

    • chiara
      01/02/2021 @ 10:47

      Bonjour Lea, je rencontre le même problème que toi. As tu trouvé une solution ? merci d'avance

      Reply

  14. co
    11/12/2020 @ 11:31

    Merci beaucoup, ça va m'aider pour la gestion du personnel !

    Reply

  15. Bilyck Patrice
    20/10/2020 @ 15:38

    Merci pour ce super TUTO
    J'ai quand même mis 1 journée mais c'est tres enrichissant !

    Reply

    • Frédéric LE GUEN
      20/10/2020 @ 16:01

      Mais c'est le but. Un rapport ne se construit pas en 3 clics (comme bcp le pense). Ca prend du temps et ça m'a pris bien plus qu'une journée pour concevoir cet article mais c'est aussi pour montrer qu'il est très important de pratiquer pour se rendre compte de la difficulté de créer des feuilles de calculs dynamiques. C'est pour cela que je donnerais jamais le classeur en téléchargement gratuit.

      Reply

    • Ham59
      02/11/2020 @ 00:39

      Bravo jai pris un plaisir à suivre le tuto j'ai appris des choses et je vais continuer à vous suivre et apprendre merci

      Reply

  16. FANY C.
    07/10/2020 @ 12:48

    Bonjour,

    Tout fonctionne parfaitement, mais je rencontre un problème dans la saisie des données.
    Les valeurs que je rentre dans les cellules sur un mois donné disparaissent quand je change de mois comme prévu. Cependant si je reviens sur le mois dans lequel j'ai renseigné ces cellules, elles ont aussi disparu.
    Pouvez-vous m'indiquer comment conserver les données dans les cellules d'un mois sur l'autre.

    Merci et bonne journée

    Reply

    • Frédéric LE GUEN
      11/11/2020 @ 13:38

      Ce n'est pas possible d'enregistrer d'un mois sur l'autre. Expliquez-moi comment une cellule peut à la fois vous servir à saisir vos valeurs (donc elle doit être vide) et aussi vous retourner un résultat d'un mois précédent (et là ça veut dire que la cellule contient une formule).
      Rien n'est impossible avec Excel mais c'est au moins 2 jours de développement en VBA pour un expert.

      Reply

  17. Rosy
    21/09/2020 @ 21:22

    Bonjour

    J'ai tout bien suivi mais Windows 10.. et ça ne garde pas les données quand je change de mois...
    Exemple je mets 1 sur une de mes lignes d'octobre 2020 puis je vais à Décembre et quand je reviens à Octobre tout a disparu...

    Reply

  18. HP
    28/08/2020 @ 14:12

    bonjour, je n'arrive pas a generer la macro pour cacher les jours suivant ?? mon tableau est en verticale, comment modifier la macro ??

    Reply

    • Frédéric LE GUEN
      28/08/2020 @ 15:42

      A la fin de l'article, il y a un lien vers un autre article qui explique ligne à ligne la macro.
      Il suffit d'inverser la variable pour les lignes et non pas les colonnes et ça va fonctionner

      Reply

      • HP
        31/08/2020 @ 15:56

        je suis assez novice en macro, je narrive pas a trouver comment inverser la variable, les lignes 4 et 6 generent des erreurs a cause des ";"

      • cindy
        16/09/2020 @ 15:26

        Bonjour,
        Je me suis arrêtée à l'étape 6, je n'avais pas besoin de plus.
        En revanche lorsque je rentre une valeur (ex:2) pour l'employé 1 le 13/09, elle se marque d'office dans la colonne le 13 des mois suivants.
        Comment puis-je supprimer cela?

  19. Noil
    31/07/2020 @ 14:33

    Hello,
    Je suis désolé mais le calendrier peut être sans interêt pour plusieurs, sur votre tuto, il y'a marqué les employés mais à quoi bon si le mois prochain les données resteront et tout ne se sauvegardera pas ?

    Reply

  20. Adrien
    28/07/2020 @ 09:18

    Bonjour,

    J'ai fait mon tableau de façons à ce que les dates soient toutes sur la colonne A du coup je n'arrive pas à ce que les dates de weekend soient en couleurs avec la formule =JOURSEM(B$6;2)>5 que j'ai modifié en =JOURSEM(A$7;2)>5.

    Et pareil pour les jours fériés.

    Pouvez vous m'aider? mes dates sont de A7 à A37

    Reply

    • Frédéric LE GUEN
      28/07/2020 @ 09:52

      C'est les $ qui sont mal positionnés. Un petit rappel sur les références mixtes ne serait pas une perte de temps.

      Reply

    • Lecharentais 79
      10/11/2020 @ 15:34

      Bonjour, je pense que vous devriez noter "=JOURSEM($A7;2)>5" pour bloquer votre colonne A.

      Reply

      • Frédéric LE GUEN
        11/11/2020 @ 13:29

        Bonjour, Non, la formule de la mise en forme conditionnelle est juste. Il faut bloquer sur la ligne et pas sur la colonne.

  21. selkakd
    20/07/2020 @ 14:21

    Bonjour

    J'ai le même problème que vous,
    Avez vous obtenu une réponse ?

    Merci

    Reply

  22. Lihodut
    06/07/2020 @ 14:30

    Pour un tableau vertical, modifiez la macro comme ceci :

    Sub Masquer_Jour()
    Dim Num_Col As Long
    Range("B7:B37").ClearContents 'Supprime le contenu dans les cellules, remplacer par la plage de votre tableau
    For Num_Row = 35 To 37 ' Remplacer par les lignes de vos jours 29, 30, 31
    If Month(Cells(Num_Row, 1)) Cells(1, 3) Then 'Num_Row, 1 où 1 est la colonne où se trouve les jours du mois
    Rows(Num_Row).Hidden = True
    Else
    Rows(Num_Row).Hidden = False
    End If
    Next
    End Sub

    Reply

    • Frédéric LE GUEN
      06/07/2020 @ 17:15

      Range("B7:B37"), hmmmm, Ca ne nettoie pas les cellules en colonne C, D, E, F, ....
      Mais sinon c'est ok, je valide 😉

      Reply

  23. Bachellerie
    01/07/2020 @ 14:16

    bonjour,

    Est-il possible de fixer un mois ? Par exemple, j'ai créer mon planning pour Juillet, cependant je désire le changer en Août. Mais si je sélectionne le mois d'août, j'ai certaines colonnes et lignes du mois de juillet.

    Super sujet merci

    Reply

  24. Léa
    22/07/2019 @ 08:27

    Bonjour,
    J'ai fait le tableau avec les employés et maintenant j'aimerai pouvoir entrer M (maladie) ou A (accident) pour chaque employé et pour chaque mois. Malheureusement, je me rends compte que si par exemple je mets M le 6 janvier, ce M se reporte partout (tous les mois). Je ne sais pas comment faire car du coup le tableau que j'ai passé des heures à faire m'est inutile si je n'arrive pas à rentrer les absences des employés pour chaque jour et mois.
    J'ai essayé de colorier la case mais cela ne change rien, la couleur se met là encore à tous les mois quand je change le mois avec la liste déroulante.
    Quelqu'un peut-il m'aider? merci d'avance

    Reply

    • Frédéric LE GUEN
      28/07/2019 @ 16:39

      Bonjour,
      Je viens de rajouter un article pour expliquer pas-à-pas le fonctionnement du code. J'espère que ces explications vont vous aider à résoudre votre problème.

      Reply

  25. Ludovic
    20/07/2019 @ 15:53

    Merci pour vos explications claires et hyper détaillées.
    je n'ai pas réussi tout du premier coup mais la persévérance m'a permis de franchir des caps.
    Ma macro ne fonctionnait pas correctement les colonnes 29-32 restaient masquées.
    en supprimant le "=" de If Month(Cells(6, Num_Col)) >= Cells(1, 1) Then
    tout fonctionne parfaitement

    Reply

    • alex
      26/07/2019 @ 17:29

      remplacer If Month(Cells(6, Num_Col)) >= Cells(1, 1) Then
      par If Month(Cells(6, Num_Col)) Cells(1, 1) Then

      Reply

      • Frédéric LE GUEN
        28/07/2019 @ 16:30

        Je viens d'écrire un article qui explique toutes les lignes de code. Merci de votre participation 🙂

  26. Bon Laëtitia
    08/07/2019 @ 15:44

    Bonjour,

    J'ai suivi toute votre procédure jusqu'à imbriquer le calendrier en feuill2 et là: bug, je n'arrive pas à copier la fonction du calendrier concernant Pâques. Vous est-il possible de mettre un lien sans mode protéger car quand je copie dans le press-papier la formule s'évapore. Du coup comme c'est une case de référence pour le calendrier en lui-même des jours fériés, impossible de poursuivre. merci pour votre réponse

    Reply

    • Frédéric LE GUEN
      08/07/2019 @ 18:06

      Pourquoi vous n'avez pas télécharger le fichier qui contient toutes les formules pour les jours fériés ?

      Reply

  27. BEN POTTIER
    19/06/2019 @ 23:32

    Un magnifique tuto!
    extrêmement pédagogue, j'ai adoré!

    il manque un peu d'explication pour le vba par contre. c'est le seul bémol. J'ai eu des soucis également sur la ligne If du vba étant donné que je ne dois pas être sur la même version que vous et que je n'ai pas positionné mes éléments aux mêmes endroits.
    Je suis sur excel 2019. voici mon code vba.

    Sub Masquer_Jour()
    Dim Num_Col As Long
    For Num_Col = 34 To 36 ' Boucle sur les cellules des jours 29, 30 et 31
    If Month(Cells(6, Num_Col)) Cells(1, 4) Then 'le 4 correspond a la colonne de la cellule liée du menu déroulant du mois, le 1 à la ligne
    Columns(Num_Col).Hidden = True
    Else
    Columns(Num_Col).Hidden = False
    End If
    Next
    Range("F7:AJ20").ClearContents 'Supprime le contenu dans les cellules
    End Sub

    Reply

  28. Olivia
    18/06/2019 @ 16:37

    Bonjour,

    Super explications pour la création de ce fichier Excel! Tout fonctionne jusqu'à l'étape 9. J'ai bien fait Alt+F11, j'ai bien coller le code et enregistrer. Ensuite, je ne parviens pas à affecter les macros sur les deux listes déroulantes. Y a t il un nom spécifique à donner? Enfait, Un message d'erreur apparait: "impossible d'affecter la macro "mon nom du document.xlsZone combinée2_quand changment'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toute les macros soient désactivées.
    De plus, j'aimerai pouvoir mettre des 1 ou 0 sous les jours pour chaque mois. Comment faire pour que mes annotations reste sur le mois et l'année séléctionnée?
    Un grand merci d'avance.
    Olivia

    Reply

    • Frédéric LE GUEN
      18/06/2019 @ 19:22

      Vous êtes le 150e commentaires sur cet article, c'est dire s'il a du succès. Mais pour autant, je suis bien incapable de vous aider.
      Je pense que par défaut, vous avez du bloquer les macros Fichiers > Options > Centre de gestion de la confidentialité > Appuyer sur le bouton Paramètres du Centre de gestion de la confidentialité > Paramètres des macros. Et là, je pense que les macros sont désactivées.
      Pour le reste, comprenez que mon métier c'est de concevoir des développements comme celui-ci pour les entreprises et c'est exactement votre cas de figure. Contactez-moi si vous souhaitez que je réalise ce travail.

      Reply

  29. Angélique
    11/06/2019 @ 15:26

    Bonjour,

    Super ce tuto, vraiment impressionnée, mais je rencontre deux problèmes.

    J'ai élaboré le calendrier différemment du vôtre, de la façon suivante :
    - 1 ligne = 1 jour (débutant en "A17", se terminant en "H78" pour les mois à 31 jours)
    - Menus déroulants : année en "B1" et mois en "C1"

    1 - J'ai nommé le calendrier que j'ai créé "2019-06". Je dois créer cette fiche pour chaque salarié et chaque mois. En dupliquant l'onglet 2019-06 pour faire celui de 2019-07, les menus déroulants qui me permettent de changer l'année et le mois ne sont plus fonctionnels et apparaissent comme "grisés" (je ne peux plus accéder au contenu des listes). Existe-t-il une subtilité pour faire fonctionner les menus déroulants comme sur l'onglet initial ?
    J'ai testé pas mal de bidouilles (dupliquer le calendrier ET l'onglet jours fériés ; les copier dans un nouveau fichier, etc). Il n'y a que le copié/collé manuel qui me conserve les menus déroulants, mais je perds la mise en forme de tout le reste.
    Je voudrais éviter d'avoir à enregistrer un fichier par mois, mais bien un seul fichier par an pour chacun.

    2 - je bloque à la macro, je ne sais pas comment la modifier pour qu'elle fonctionne selon la disposition de mon calendrier.

    Je vous remercie par avance pour votre aide, et surtout pour ce tuto bien pratique !

    Angélique

    Reply

  30. Cyril
    23/05/2019 @ 17:55

    Bonjour , tout d'abord merci beaucoup pour ce tuto tout marche très bien , mais pour des raison pratiques j'ai mis mais jour à la verticale il faut donc que je masque des lignes plutôt que des colonnes j'ai essayé de modifier la macro mais ça marche pas pouvez-vous m'aguiller svp.
    Cordialement
    Cyril

    Reply

    • Frédéric LE GUEN
      24/05/2019 @ 19:15

      Il faut inverser la variable dans les paramètres de l'instruction Cells(ligne, colonne).
      Dans l'article, j'ai mis mon le lien vers mon livre. Il est très bien noté sur Amazon et est très pédagogique. Ca vous permettra de comprendre le déroulement du code et comment l'adapter à vos besoins de création de calendrier

      Reply

  31. Clément FOUSSIER
    21/05/2019 @ 03:13

    Bonjour,

    D'abord, merci pour ce tuto très accessible et bien détaillé.
    J'ai pu réaliser un calendrier, à partir de l'année 2019, après m'être "heurté" sur le code VBA.
    Voici les petites modification que j'ai apporté :

    Sub Masquer_Jour()
    Dim Num_Col As Long
    For Num_Col = 30 To 32 ' Boucle sur les cellules des jours 29, 30 et 31
    If Month(Cells(6, Num_Col)) Month(Cells(6, 2)) Then
    Columns(Num_Col).Hidden = True
    Else
    Columns(Num_Col).Hidden = False
    End If
    Next
    Range("B7:AF13").ClearContents 'Supprime le contenu dans les cellules
    End Sub

    Sous cette forme le code à l'air de bien fonctionner, je débute VBA donc j'espère qu'il est viable et qu'il aidera les prochains.
    Merci encore, bonne journée et à bientôt.

    Reply

  32. Daniel Sala
    25/04/2019 @ 17:20

    Bonjour,

    Merci pour la correction du code VBA (problème HTML), voici quelques erreurs que j'ai remarquées :

    P.S. J'ai mis le calendrier et les 2 listes déroulantes exactement dans les mêmes cellules que dans le tuto, donc, le code VBA est pareil aussi à ce niveau.

    1) En mettant >= les 3 dernières colonnes (jours 29, 30, 31) sont cachées pour tous les mois. C'est en mettant juste > que le code fait la bonne chose dans le calendrier (si je choisis le mois de mai, ça affiche les 31 jours, si c'est juin, c'est 30 et si c'est février, c'est 28 ou 29 selon l'année choisie.

    2) J'ai mis le code pour supprimer le cont