«

»

Création d’un calendrier automatique

Créer un calendrier tous les mois est une vraie perte de temps. Non seulement, les week-ends ne tombent jamais les mêmes jours mais en plus il faut chaque mois refaire le design de son document et y inclure les jours fériés.

A la fin de cet article, vous pouvez télécharger le classeur (avec la macro) 😉

Pour concevoir un calendrier automatique, nous allons avoir besoin

  • de menus déroulants de type Objet graphique
  • la fonction DATE (pour le calcul de la première date du calendrier)
  • la fonction TEXTE (pour le titre dynamique du document)
  • la fonction JOURSEM (pour les week-ends)
  • la fonction RECHERCHEV (pour les jours fériés)
  • des mises en forme conditionnelles (pour la couleur)
  • quelques lignes de code VBA (pour masquer les colonnes inutiles)

Etape 1 : ajouter un menu déroulant

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

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.

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

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

Calendrier_Automatique_3



Calendrier_Automatique_4Ensuite, cliquez et étirez pour faire apparaître votre objet “Menu déroulant” dans votre feuille de calculs

 

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

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).

C’est pourquoi, j’écris les mois en colonne AH (34ème colonne dans la feuille de calculs).

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

Calendrier_Automatique_6Ensuite, je m’occupe de lier le menu déroulant avec la liste des mois créés en AH. C’est très simple comme vous allez le voir.

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


 

 

Calendrier_Automatique_7La boîte de dialogue suivante s’ouvre

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

 

La cellule liée est la cellule qui va réceptionner la valeur du menu déroulant sélectionné. Par exemple, 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.

Mais alors, pourquoi choisir 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 😉

Idem 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 DATE pour calculer le premier jour du mois correspondant aux sélections des 2 menus déroulants.
Calendrier_Automatique_8

  • La valeur du jour dans la formule est nécessairement égale à 1
  • La valeur du mois correspond tout simplement à la valeur de la cellule A1 (la cellule liée)
  • La valeur de l’année correspond à la valeur de la cellule liée en A2

 

Pour l’année, il faut en plus ajouter une autre valeur. Dans notre cas, nous avons sélectionné 2015 mais la cellule liée affiche 1 (premier élément de la liste des années).

Nous devons donc ajouter 2014 à 1 pour obtenir l’année 2015.

=DATE(A2+2014;A1;1)

Calendrier_Automatique_9a

Plus simplement, pour 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

 

 



Etape 3 : Changer le format de la date et l’orientation

Calendrier_Automatique_10Nous avons déjà effectué un très grand travail 🙂  maintenant, nous allons nous focaliser sur l’affichage de la date. Nous connaissons déjà le mois et l’année, positionnés en haut à gauche de notre feuille de calculs. Il n’est pas nécessaire de répéter cette information dans les cellules de la ligne 6. Nous n’avons besoin que d’indiquer la valeur du jour en lettres et en chiffres. Pour cela, nous allons modifier les paramètres du format de date des cellules de la ligne 6 pour ne faire apparaître que les jours en lettres et en nombres.

  • 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
OR




Lien Permanent pour cet article : https://www.excel-exercice.com/creation-dun-calendrier-automatique/

(96 commentaires)

Passer au formulaire de commentaire

  1. n.teillard

    Bonjour,

    Ce code ne fonctionne pas dans mon document.
    J’ai intégré la formule : =JOURSEM(D$16;2)>5, pour afficher les jours fériés en couleur et la totalité de la sélection s’est affiché en couleur sans distinction de jours fériés.
    Je ne comprends pas d’où peut provenir l’erreur.
    cordialement

    1. Frédéric LE GUEN

      Bonjour,
      Hmmmm …. L’écriture de la fonction JOURSEM est correcte pour les jours du week-end (le $ est bien positionné)
      Maintenant, il faudrait voir l’écriture que vous avez faite pour l’affichage des jours fériés. Il doit manquer un $ quelquel part dans la formule.

      1. n.teillard

        Je ne suis pas sûr de bien comprendre votre demande mais voici la formule complète :
        Formule : =JOURSEM(D$16;2)>5 s’applique à =$D$16:$I$46

      2. Frédéric LE GUEN

        Dans votre premier message vous me parlez des jours fériés. Or, la formule que vous me présentez (avec JOURSEM) c’est pour trouver les week-end.
        Pour les jours fériés, c’est la fonction NB.SI.ENS qu’il faut utiliser.
        Le pb se situe avec la couleur des week-end ou des jours fériés ?

      3. n.teillard

        Oui excusez-moi je me suis mal exprimé, c’est bien pour trouver les week-end.
        Je suis pas à pas votre tutoriel : Création d’un calendrier automatique

      4. Frédéric LE GUEN

        Donc il n’y a pas de problème.
        Si vous avez bien construit la ligne contenant les dates 01 lun, 02 mar, ….. le test fonctionne. Il faut que ça soit bien des dates (c’est-à-dire des nombres) et pas du texte écrit en dur dans les cellules.
        D’après ce que je comprends, vous avez construit cette ligne en ligne 16 en commençant à la colonne D. Donc la mise en forme conditionnelle avec la fonction que vous m’avez envoyée doit parfaitement changer les couleurs quand le jour en ligne 16 à pour valeur 6 (samedi) ou 7 (dimanche)

      5. n.teillard

        La ligne des dates est conforme.
        La première ligne renvoi à la ligne de la date
        Les suivantes sont au format date selon la formule : D16+1, D16+2
        Les dates sont conformes au calendrier.
        Mais la couleur ne change pas le samedi et le dimanche.
        Toute la zone sélectionné est en couleur.

        VRAI dim 01
        FAUX lun 02
        FAUX mar 03
        FAUX mer 04
        FAUX jeu 05
        FAUX ven 06

  2. contact4

    Bonjour,

    Merci beaucoup pour cette vidéo, elle est très claire, cependant je sèche sur 2 points :

    – Malgré la formule que vous donnez pour la macro, les jours s’arrêtent tous au 28 du mois, quelque soit le mois ?!?
    – Je souhaiterais utiliser ce calendrier pour faire le planning de mes salariés, cependant avec la formule de la macro, lorsque j’écris dans les cellules de juillet 17 (par exemple), et que je change de mois, ce que j’avais écrit, disparaît (ok, c’est bien ce que l’on demande), mais en revanche lorsque je retourne sur juillet 17, tout est effacé également ?!?

    En vous remerciant du temps que vous prendrez pour me répondre.

  3. Nicolas

    Bonjour,
    Je vous remercie pour ce tuto vraiment parfait.
    Juste une question, lorsque je fais mes plannings, je remplis une case en couleur, mais lorsque je change de mois les couleurs restent. Est-ce possible de rendre la page vierge quand je change de mois?
    En vous remerciant d’avance

    1. Frédéric LE GUEN

      Bonjour,
      Il faut dans ce cas remplacer ClearContents par Clear mais cela va également impacter les bordures

  4. phil.perso

    Bonjour,

    Quand je crée ma deuxième page pour les fériés et que je fais =ANNEE(C2+2016) il me met 1905…

    Je n’arrive pas à obtenir 2016 ???

    Pouvez-vous m’aider ?

    1. Frédéric LE GUEN

      Pourquoi vous mettez la fonction ANNEE ? Faite juste C2+2016 et ça fonctionne

  5. basso2024

    Bonjour,

    j’ai un gros soucis avec la macro: je copie exactement soit la macro sur le site que celle de la vidéo (il y a comme même une légère différence), mais ou tous les données disparait ou le jours que j’aimerai faire disparaitre … reste visible.

    Je ne comprends pas la raison.

    Pourriez-vous m’aider?

    Merci

    1. Frédéric LE GUEN

      Envoyez moi votre fichier à [email protected]

      1. basso2024

        Bonjour,

        c’est fait. Merci de l’aide

        Luca

    2. Fabien Dardillac

      Bonjour,

      J’ai exactement le même soucis. Pourriez-vous expliquer la solution que vous avez préconisé s’il vous plait ?

      Merci d’avance,

      Fabien

      1. Frédéric LE GUEN

        Bonjour,

        Idem, envoyez moi votre fichier pour que je vois/trouve le problème.

  6. Vincent Debever

    Bonjour,

    Merci pour ce tuto, je n’ai pas eu de problème jusqu’à la macro. En effet, lors que je copie le code que vous avez mis pour masquer ou non les colonnes, la macro fonctionne bien mais réduit l’ensemble des mois à 28 jours… Lorsque je passe à un autre mois ou une autre année, les dates supérieures (29, 30, 31) ne sont pas affichées, le nouveau tableau ne se met pas à jour. Je dois ouvrir Visual Basic pour cliquer sur la petite flèche verte (Exécuter Sub) pour qu’il puisse être mis à jour. Pourquoi mon tableau n’est pas automatiquement mis à jour ?

    Merci d’avance pour votre réponse

    1. Frédéric LE GUEN

      Bonjour,
      Il doit y avoir un décalage entre les valeurs de la boucle For / Next et les numéros de colonnes.
      Vérifiez que la première valeur de votre colonne corresponde bien à la colonne qui représente le 28ème jour.

  7. MPRT

    Si ce qu’on écrit pour le mois de janvier se retrouve dans le mois de mars et que cela ne peut pas être modifié, je ne comprends pas à quoi sert cette liste déroulante alors ?

    1. Frédéric LE GUEN

      Le tableau doit se remettre à jour automatiquement grâce à l’instruction
      Range(“B6:AF13”).ClearContents tel que c’est indiqué dans le code

  8. DomS

    Bonjour,
    superbe ce programme de calendrier automatique! Juste une question : J’aimerai faire un calendrier montrant le tournus sur 3 semaines pour 3 groupes. Ex. groupe 1 semaine du lundi 22.02 au dimanche 28.02, Groupe 2 du lundi 29.02 au dimanche 06.03 et groupe 3 du lundi 07.03 au dimanche 13.03, puis de nouveau le groupe 1. Comment faire?

  9. MPRT

    Bonjour,
    Je suis vraiment novice en ce qui concerne Excell … et j’ai le même problème qui a déjà été mentionné (lorsque je remplie le mois de février les données s’enregistrent pour les autres ois alors que je veux qu’ils restent vierge). J’ai essayé d’appliquer vos différentes réponses mais j’ai besoin d’une réponse aussi détaillé que le tuto au final pcq ‘rajouter une commande dans la macro’ je ne vois vraiment pas ….

    Merci d’avance de votre temps et patience.

  10. COMMY

    Bonjour,

    J’ai un problème avec le tableau. Apres l’avoir réaliser correctement, je n’arrive pas à modifier le contenu des cellules sans que cela ne se répercute et s’affiche sur le calendrier des autres mois. Que faire pour que le contenu soit dissocié par mois?
    Merci

    1. Frédéric LE GUEN

      Bonjour,
      Le tuto explique comment changer automatiquement l’affichage rien de plus, ce que vous voulez c’est conserver les précédentes valeurs. Or ceci est une base de données (trop compliqué et trop long à expliquer dans un tuto).

  11. CCGaybeul

    Bonjour à tous,

    Merci beaucoup pour le tuto, tout se passe bien avec Excel !!

    Mais maintenant, je rencontre un problème avec Google Sheets dans le quelle j’ai importé mon fichier excel, jue me retrouve avec une erreur avec la commande “=DATE(A2+2014;A1;1)” Erreur : le parametre 2 de la fonction DATE attend des valeurs du type nombre.Mais Février est du type texte et ne peut pas être forcé pour être un nombre.
    Une idée svp???
    Merci d’avance pour votre intérêt à mon problème

    1. Frédéric LE GUEN

      Bonjour,
      Je ne n’utilise jamais Google Sheet par ce qu’Excel est également gratuit depuis son compte Onedrive (www.office.com). Et donc, toutes les fonctions Excel sont justes.

  12. zamponi84Jean-Pierre

    Bonjour,

    Lorsque je passe d’un mois à un autre, le contenu de mon planning, reste. Or, je souhaite pouvoir le modifier d’un mois à l’autre, tout en mémorisant les anciens mois ; d’où son intérêt.

    Il existe un autre programme ?

  13. Germain Germain

    Bonjour
    Une idée
    Pour éviter le VBA

    Dans les cellules AC1, AD1, AE1,AF1 je récupère le numéro du mois correspondant aux cellules AC6, AD6, AE6, AF6 par la fonction =MOIS(AC6), MOIS(AD6) etc.
    Dans les mises en forme conditionnelle pour la plage AD6:AD12* (*selon le nombre de lignes)
    =$AC$1$AD$1 qui s’applique à =$AD$6:$AF$12
    pour la plage AE6:AE12
    =$AC$1$AE$1 qui s’applique à =$AE$6:$AF$12
    pour la plage AF6:AF12
    =$AC$1$AF$1 qui s’applique à =$AF$6:$AF$12

    Avec Couleur blanche pour remplissage et caractères.

    Salutations

  14. Rico

    Bon, j’ai tenté ça, mais il plante sur la 4ème ligne :

    Sub Masquer_Jour()
    Dim Num_Ro As Long
    For Num_Ro = 32 To 35
    If Month(Cells(4, Num_Ro)) Cells(1, 1) Then
    Rows(Num_Ro).Hidden = True
    Else
    Rows(Num_Ro).Hidden = False
    End If
    Next
    Range(“A4:K34”).ClearContents
    End Sub

    voilà, si quelqu’un veut bien me filer un coup de main…

  15. Rico

    Bonjour,
    le tuto est super, mais je bug un peu sur module pour masquer les dates hors mois, le soucis c’est que mon tableau est à l’envers (dates de A4 à A34) et que mon code bloque sur le changement de “colonne” à “lignes” :
    Sub Masquer_Jour()
    Dim Num_Li As Long
    For Num_Li = 30 To 32
    If Month(Cells(6, Num_Li)) Cells(1, 1) Then
    Lignes(Num_Li).Hidden = True
    Else
    Lignes(Num_Li).Hidden = False
    End If
    Next
    Range(“A4:K34”).ClearContents
    End Sub

    Les lignes je les ai appelé “Lignes” ou “Lines” ou “Li” et il bloque toujours dessus. Quelqu’un sait comment m’aider ?

  16. DGDF

    Bonjour, j’ai bien respecté tout le tutoriel et merci beaucoup !
    Cependant, j’aimerais pouvoir rentrer des données différentes pour chaque mois mais ça ne semble pas possible car si j’ajoute la ligne Clear content, la donnée disparaît dès que je change de mois et si je ne rentre pas cette ligne, les données sont répétés pour chaque mois de chaque année.
    Comment faire?

    Merci par avance

  17. Anonyme

    Merci pour ce superbe tutoriel, tout cela est bien expliqué.

  18. Yannick

    Bonjour,

    Tout d’abord merci infiniment pour ce tutoriel très utile et intéressant !

    Je suis parvenu à réaliser l’ensemble du calendrier mais je rencontre un problème avec la macro : celle-ci fonctionne bien mais réduit l’ensemble des mois à 28 jours… Je passe d’un tableau où figurent les dates supérieures au 29 (pour février 2016) et au 30 (pour tous les mois qui ne comptent que 30 jours) à un tableau où tous les mois, qu’ils fassent 29, 30 ou 31 jours se voient réduits à 28 jours… Une idée de la cause de ce problème et de sa solution ?

    Par avance, un grand merci pour votre aide !

    1. Yannick

      Problème réglé, merci et désolé !!! 🙂

      1. DGDF

        Bonjour Yannick, 🙂 Comment as tu réglé ce problème ? merci par avance

  19. Delf

    Bonjour
    Ce tuto est magique ! Mais sur mon fichier Excel, les conditionnelles pour mettre les WE et les jours fériés en couleur ne fonctionnent pas. En mettant les jours fériés sur une autre feuille il refuse de prendre en considération ma demande. Du coup ma grille devient entièrement orange selon le mois, mais pas uniquement les WE

  20. Marc

    Bonjour, j’aimerais savoir s’il est possible de laisser en mémoire le contenu des cases pour chaque mois. Je m’explique: l’employé N°1 prends congé le 15 du mois suivant. Je le note au mois suivant et lorsque je reviens sur le mois actuel, l’annotation est partie–> super! Mais lorsque je reviens sur le mois suivant, elle est aussi partie et j’aurai voulu qu’elle reste.

  21. Anonyme

    Sub Masquer_Jour()

    Dim Num_Col As Long
    For Num_Col = 28 To 32
    If Month(Cells(6, Num_Col)) Cells(1, 1) Then
    Columns(Num_Col).Hidden = True
    Else
    Columns(Num_Col).Hidden = False
    End If
    Next

    End Sub

    Comme ca sa fonctionne

  22. MSSME

    Bonjour,

    Je passais par là.

    Il y a quelques soucis mais c’est dû aux langues usitées.
    Le conflit vient de l’anglais vers le français.

    1) La ligne de la macro est en rouge car il faut remplacer les quote par des guillemets

    de Range(« B7:AF13 »).ClearContents à Range(“B7:AF13”).ClearContents

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

    pour

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

    3) Pour afficher les jours fériés, les dates sont inversées dans le tableau. Jour – mois – année pour ceux qui utilisent un office en français.

    donc, de

    25-Déc 12-25-2015 à 25-12-2015

    et tout fonctionnera tout seul.

    1. MSSME

      ben voilà..en postant les réponses, je m’aperçois que cette page transforme aussi les guillemets etc

      donc partout ou vous verrez <> mettez des guillemets || donc Code ASCII 034 🙂

      voilà

      1. Frédéric LE GUEN

        Super réponse (oui, je sais j’ai des pbs de guillemets sans comprendre d’où ça vient)
        Veux-tu participer à la rédaction des articles ?

      2. Smedoc

        Salut. Désolé pour la réponse tardive et comme tu as pas de lien Contact…je vais raconter ma vie ici….

        En ce qui concerne ton site et les guillemets… Je pense qu’un petit tour dans tes meta règleront ton souci

        Sur ton site ici tu déclares

        et une localisation en fr

        sur mes sites

        Et mes guillemets restent des guillemets.

        En ce qui concerne la rédaction des postes..J’ai bien peur de ne plus avoir assez de temps déjà pour moi. Il est 2h du mat et je termine à peine la maintenance d’un de mes sites et il m’en reste deux encore à faire. Mais je ferais un petit tour de temps en temps par ici..

  23. Vimal

    La macro fonctionne bien mais je ne comprends pas pourquoi la donnée que je rentre pour une journée s’efface lorsque je change de mois ou même d’année ?

  24. Didic974

    Bonjour
    Merci pour ce tuto
    J’ai eu un petit soucis pour la commande de macro mais résolu grace aux messages déja poste
    Par contre je me rends compte qu’en passant à 2016 les jours fériés ne se reproduisent pas est ce normale ou j’ai fait une mauvaise manip
    Merci

    1. Didic974

      Par contre je disais que j’avais pas de soucis avec la macro ben en fait si les données ne s’effacent pas non plus

  25. Ran

    Bonjour,

    J’ai le même soucis, si j’écris quelque chose dans une cellule du calendrier, l’info est répétée sur tous les mois et les années. Avez-vous trouvé une solution?

    Merci,

    1. Anonyme

      Tu dois rajouter cette ligne :
      Range(“B7:AF13”).ClearContents

      1. Vimal

        Mais le problème qui se pose est que la donnée que tu rentres pour une journée ne s’affiche plus une fois que tu changes de mois

  26. Alban

    Bonjour Frédéric,

    Tout d’abord, merci beaucoup pour ce tuto, le calendrier mis en place répond totalement à ce que je recherchais.

    J’ai un souci avec la macro copié de votre site, elle n’a pas l’air de vouloir fonctionner.

    J’ai la ligne Range(« B6:AF13 »).ClearContents qui s’affiche en rouge et quand je veux exécuter la macro, Visual Basic m’affiche ceci : Erreur de compilation: Erreur de syntaxe.

    Est-ce que j’ai oublié une étape ?

    1. Alban

      Je viens de trouver la solution à mon problème en supprimant la ligne qui me posait soucis, à savoir Range(« B6:AF13 »).ClearContents

      Encore merci pour ce tuto

      1. Frédéric LE GUEN

        Il n’y a aucune raison que ça plante à cette instruction. Il faut bien utiliser le séparateur ” (touche 3) pour entourer les références des cellules.

  27. Frédéric LE GUEN

    Bonjour,
    Il faut rajouter la ligne de commande suivante dans la macro
    Range(“B6:AF6”).ClearContents

  28. Naj

    Bonjour,

    J’ai suivi toutes les étapes et tous fonctionne correctement mis à part sur la notation.
    Lorsque je rentre des informations sur le mois de Novembre de l’année 2015 ces mêmes informations apparaissent sur les autres mois et année en gardant la référence de la case.
    Quelqu’un aurait eu le même soucis ?

    Merci

  29. Audrey

    Bonjour,

    après de nombreuse tentatives, je ne parviens pas à faire fonctionner ma mise en forme conditionnelle pour les jours fériés.
    A ne pas y comprendre pourquoi…
    J’ai pourtant vérifié de nombreuses fois et essayé plusieurs choses différentes mais rien n’y fait.

    Si vous avez une petite idée d’où peut provenir le problème (mise en forme d’une cellule par exemple), je suis preneuse !

    Dans l’attente d’un retour de votre part,
    J’espère pouvoir échanger avec vous rapidement.

    Bien cordialement,
    Audrey.

  30. Maquaire léa

    Super ça m’a énormément aidé!
    Je créée un calendrier pour la gestion des congés d’une équipe. J’aimerais non pas pouvoir le faire au mois, mais à la semaine. Par exemple j’aimerais pouvoir sélectionner la semaine n°3 de 2016 et ne voir apparaitre la plage du 18 janvier au 24 janvier. Est ce possible ?

    J’ai commencer par faire un menu déroulant avec des numéros de semaines (jusqu’à 52). Mais je ne sais pas quel formule écrire pour ensuite l’afficher à la place de tous les jours du mois.

    Merci

  31. soukaina

    aider moi SVP ce code ne marche pas pour moi

    1. Anonyme

      Celui ci fonctionne-t-il?
      Dim Num_Col As Long
      For Num_Col = 30 To 32
      If Month(Cells(6, Num_Col)) Cells(1, 1) Then
      Columns(Num_Col).Hidden = True
      Else
      Columns(Num_Col).Hidden = False
      End If
      Next
      End Sub

  32. Claude

    Re Bonsoir,
    Je pense que j’ai trouvé l’erreur dans le code. C’est au niveau de la plage de cellules. Ce n’est pas B6:AF13 mais B7:AF13. Après modification la macro marche très bien.

  33. Claude

    Bonsoir,
    Merci pour le tuto qui m’a été très utile….jusqu’à la macro. J’ai recréé le même tableau que dans le tuto et exécuté la macro. Cela a bien supprimé des colonnes pour le mois de février par exemple mais ça a aussi supprimé tous les jours (du 1er au 31). Conséquence, quand on veut rechanger le mois, il n’y a plu de référence de date et la macro ne fonctionne plus. Bien que vous confirmiez qu’elle fonctionne, n’y aurait-il pas une erreur quelque part? C’est ma première question. La seconde est que le calendrier que je veux créer est vertical et je veux cacher des lignes au lieu des colonnes. Que faut-il changer dans le code pour cacher des lignes? J’ai Excel 2010 et vous l’avez compris, je suis nul en VBA.
    Merci d’avance pour vos réponses

  34. ARNAUD

    Merci sincèrement, des articles comme celui ci simplifient tant la vie.

  35. Mawine

    Bonjour

    Si on remplit des choses dans le calendrier pour le mois d’octobre et qu’on va sur novembre, on retrouve les mêmes commentaires d’un mois à l’autre, il n’est pas possible de rendre le calendrier vide d’un mois à un autre?

    Merci d’avance pour votre aide

    1. Pesi

      Bonjour, est-ce que tu as pu trouver une solution ? J’ai le même problème que toi.
      Merci d’avance de votre aide.

  36. Audrey

    Bonjour je rencontre un problème avec les jours fériés. Tout s’enregistre correctement mais le résultat n’est pas perceptible. Aucun changement sur le tableau.

    ps: vos données de la base B6:AF13 correspond pour moi à I18:AM18.

    Merci de m’apporter vos lumières.
    Cdt,
    Audrey.

  37. Buydut

    Bonjour,
    Je voudrais créer un calendrier automatique pour 2016, reprenant les mois en colonnes. J’ai incrémenté les cellules. Donc, dans la colonne de février, la colonne se termine par … le 1er et le 2 mars. Comment faire pour que ces deux cellules soient vides?
    Merci d’avance si vous avez une solution.

  38. james Bond 007

    qui peut me passer le tableau s’il vous plait ?

  39. MisterM

    bonjour je rencontre un problème pour mettre les jour férié et pour les mois comme février il me continue le moi avec 01 02 03. j’ai suivit tous qu’il y’avait de marquer mais pas moyen.

  40. khadija

    parfait. je vous remercie

  41. Thebaud

    Très bon tuto sauf pour la macro après l’avoir affectée toutes les cases du calendrier se vident et les mises en formes conditionnelles disparaissent.
    Quelqu’un peut il résoudre ce problème svp??

  42. Damien

    Bonjour,
    Super tuto par contre je rencontre quelques problèmes.

    1) Lorsque je veux mettre le titre dynamique il met met qu’il ne reconnait pas la fonction.
    2) Lorsque je met le code visual basic et que je compile et que j’associe bhen il me met une erreur de synthaxe quand je change de date.
    3) Pour certains mois les dates ne s’affiche pas et me met “#######”

    Merci beaucoup !

  43. Betty

    Bonjour,

    Je rencontre un problème au niveau des dates, il me fait commencer le mois d’aout un vendredi, or ce doit être un samedi. D’où vient l’erreur ? Merci d’avance

    1. Betty

      Ok, je n’avais pas lu jusqu’à la fin .. –‘

  44. Alexandra

    Merci pour le tuto !
    Par contre, petit bémol… Le calendrier rencontre une limite lorsque le mois concerné ne possède que 29 ou 30 jours… Les jours du mois suivants s’ajoutent… Pas top !

    A moins que je n’ai fais une erreur sans m’en apercevoir >.<

    1. Frédéric LE GUEN

      Rien d’anormal, dans la vidéo c’est d’ailleurs comme celà que ça fonctionne. Par contre, il faut terminer le travail en ajouter les 5 lignes de codes pour masquer les jours du mois suivant

      1. Frey Corinne

        Corinne
        merci de nous donner ces lignes de code pour résoudre les problèmes de jour 29 ou 30 car sur la video ce n’est pas lisible

  45. GUEDON

    Bonjour et merci pour ce super tuto ; Perso je rencontre un problème quand je rentre la règle =NB.SI(Feuil2!$B$3:$B$15;B$6)>0 pour les jours fériés , Excel me dit : ” vous ne pouvez pas faire référence à d’ autres feuilles ou classeurs pour les critères de mise en forme conditionnelles “

  46. Destin

    merci ce tuto m’a énormément aidé.

  47. Anonyme

    Parfait ! Merci

  48. Laura

    Merci beaucoup pour ce tuto, juste un soucis au niveau de la macro, j’ai corrigé les erreurs de copier-coller (guillements) mais il ne semble pas appliquer la règle … Mais encore merci, très clair pour une non-experte!

  49. Anonyme

    Merci beaucoup, les explications super clair mais j’ai toute fois un problème avec les jours 31, ils s’affichent pour chauques mois, du coup chacunes de mes dates ont le mauvais jour de semaine.
    Merci encore pour votre aide 🙂

  50. chaden

    vraiment mille merci ☺

  51. Anonyme

    excellent tuto

  52. scherrer jerome

    Bonjour,
    Merci encore pour ce tuto !!!! j ‘aurais juste besoin d’une astuce, lors d’un changement de mois mon texte reste dans les cases et j aimerai qu’elle soit vierge à chaque mois.
    cordialement

    1. Frédéric LE GUEN

      Les cellules ne peuvent pas être vierge car toute la construction du calendrier repose sur les cellules A1 et A2.
      Par contre, si on met la couleur de texte de ces cellules à “Blanc” alors les valeurs en A1 et A2 sont invisibles

    2. Naj

      J’ai le même soucis avez vous trouvé une solution ?
      Merci

  53. cammas

    Bonjour
    Je voudrais coller mon cycle de travail sur le calendrier (6 jours de w et 6 de repos) en remplaçant “employé 1” par “Matin” employé 2 -Matin; employé3 et 4 après midi; et employé 5 et 6 nuit et faire que tout celà se décale en faisant varier les mois.
    Pouvez-vous m’aider. je ne sais pas comment m’y prendre
    Merci

  54. Divine mankanguila

    Merci beaucoup

  55. Anonyme

    Merci pour ce site !

  56. Mel

    Bonjour,

    Merci pour ce tuto, c’est très bien expliqué ! Super 🙂
    J’ai toutefois une question : est-il possible de modifier l’intérieur du calendrier sans que cela ne change pour les autres mois ? Je souhaiterai renseigner pour chacun des employés le chantier sur lequel ils se trouvent chaque jour. Ex : Pour le mois de Mai l’employer 1 est sur le chantier “jaune” à telle et telle date, “bleu” à d’autres dates et ainsi de suite… Mais est il possible de passer au mois de Juin avec un calendrier “vierge” tout en gardant le planning du mois de Mai enregistré ?

    Merci par avance 😉

    1. Frédéric LE GUEN

      Alors c’est possible mais avec une macro plus complexe. Il faut bien voir qu’ici ce n’est pas une base de données qui conserve l’historique des informations. C’est juste un tutoriel qui montre comment mettre en forme automatiquement un calendrier avec les dates spécifiques. Pour faire une vraie base de données c’est bcp plus de travail à effectuer (qques jours de programmation)

  57. bartho

    La macro ne semble pas fonctionner en l’état (pb de caractères mal interprété)

    1. Frédéric LE GUEN

      Si si, la macro a été testée plusieurs fois et elle fonctionne

  58. kondor7

    J’obtiens un message d’erreur à l’entrée de la formule usant la fonction texte
    = »Période du « &TEXTE(DATE(A2+2014;A1;1); »jj mmmm aaaa »)& » au « &TEXTE(DATE(A2+2014;A1+1;1)-1; »jj mmmm aaaa ») »

    Pouvez vous m’éclairez ?

    1. kondor7

      même mis sous cette forme je précise :

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

      1. kondor7

        Le site modifie les guillemets. Même en mettant des apostophes je voulais dire

      2. corinne

        IL SUFFIT DE SUPPRIMER LE DERNIER GUILLEMET
        = « Période du »&TEXTE(DATE(A2+2014;A1;1); »jj mmmm aaaa « )& »au »&TEXTE(DATE(A2+2014;A1+1;1)-1; »jj mmmm aaaa »)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *