«

»

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.

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)

Téléchargement du fichier

Vous pouvez retrouver, le classeur déjà réalisé, dans le fichier téléchargeable ci-dessous

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

Etape 4 : Changer l'orientation du texte

Maintenant, nous allons changer l'orientation des dates

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

Calendrier_Automatique_12

Pour finir, 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

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

Calendrier_Automatique_14

Etape 5 : Ajoutez un titre dynamique

Maintenant, nous devons ajouter un titre à notre calendrier en relation avec le mois et l'année sélectionnée. Un titre qui vous permet de lire le premier et le dernier jour du mois en fonction des menus déroulants.

Pour faire cela, nous devons à la fois présenter le premier jour et le dernier jour du mois sélectionné (vu dans l'article sur la fonction DATE). Ensuite, nous utiliserons la fonction TEXTE qui permet de jouer sur la mise en forme des dates.

La formule pour la première date est :

=DATE(A2+2014;A1;1)

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

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

Ensuite, nous fusionnons toutes les cellules de B4 à AF4 et nous écrivons la formule suivante qui inclut les 2 formules précédentes dans une 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")

Et le résultat devient :

Calendrier_Automatique_15

A chaque fois que vous changez le mois ou l'année, votre titre se modifiera en conséquence (Yeah ! 😎)

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

Calendrier_Automatique_16Pour réaliser ce travail, nous utiliserons des 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
  • Une autre pour les jours fériés

  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)

A propos des jours fériés, nous avons besoin d'insérer quelque part dans notre classeur la liste des jours fériés de notre pays (de référence).

En cliquant sur ce lien, vous avez la liste des jours fériés français dynamiques (Jour de Pâques recalculé selon l'année) 😍😎

Ajoutez-la dans une nouvelle feuille de calculs de votre classeur avec comme nom Feuil2.

Calendrier_Automatique_17Pour créer une règle à partir de cette nouvelle feuille, écrivez la règle suivante :

  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

Quand vous 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

Et maintenant, votre calendrier automatique présente à la fois les week-ends et les jours fériés sous une couleur différente

Etape 7 : Masquer les dernières colonnes par Macro

Du fait que tous les mois n'ont pas le même nombre de jours, il est préférable de créer un programme indiquant à Excel de masquer les colonnes qui présentent des données pour le mois suivant. Le programme à mettre en place est très simple. Nous devons créer une boucle pour les colonnes AD, AE et AF et vérifier que la valeur du mois de la ligne 6 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

Vous avez été très nombreux à me poser des questions à propos de ce code. Il fonctionne parfaitement je peux vous le confirmer.

Mais il suffit d'un décalage dans les cellules pour qu'il ne fonctionne pas. Si la programmation en VBA vous est inconnue, je vous invite à découvrir mon livre sur la programmation sous Excel pour réaliser des exemples comme celui-ci ou d'autres exemples tout aussi pratiques.

Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 30 To 32
' Compare la valeur du mois de la cellule AD6 Month(Cells(6, Num_Col))
' avec la valeur du mois sélectionné en A1 Cells(1, 1)
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

Calendrier_Automatique_20
Maintenant 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

 

 

 

ET C'EST TOUT 😎 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.

 

Articles complémentaires


Voici une liste d'articles qui pourrait également vous intéresser sur le même thème.

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


(112 commentaires)

Passer au formulaire de commentaire

  1. LISTELLO

    Bonjour,

    J'ai un souci; j'ai créé un tableau de suivi de planning prévisionnel travaux sur excel. Par exemple, quand une date change; je suis obligée de décaler ligne par ligne et faire les modifications une à une....c'est très fastidieux. N'y existerai t-il pas une fonction dans excel, afin que lorsque l'on modifie une donnée du graphique, il y ait une réactualisation automatique?

    Merci pour votre aide.

  2. Bertrand

    Bonjour,

    J'utilise excel au quotidien mais de manière autodidacte et donc assez peu automatisée. Votre tutoriel vient de me faire gagner un temps fou pour l'avenir (même si j'ai passé la matinée à faire fonctionner tout cela).

    Je vous remercie beaucoup pour ce partage de connaissance précieux !!

    Juste une question : j'ai essayé de faire le tableau dans l'autre sens (entrées "dates" en colonne A) mais cela fait dysfonctionner la formule pour changer la couleur des jours fériés et week-end. Je crois comprendre qu'il s'agit d'un problème de dédoublement de la formule : il doit falloir faire la recherche des jours concernés dans la colonne des dates, mais l'affichage de la couleur concernée doit se faire dans la ligne correspondante. J'ai essayé de contourner le problème, mais je n'y suis pas parvenu. Et je ne suis pas certain d'être clair dans ma formulation du problème.

    J'ai donc refait le tableau en suivant scrupuleusement les étapes et ça fonctionne.

    Merci mille fois !

  3. Christophe

    Bonjour,

    Super tuto merci, Mais j'ai un petit souci ... par exemple en janvier, je marque mes horaires je passe à un autre mois et ainsi de suite.

    le problème quand je reviens sur le moi de Janvier tout ce qui était inscrit à disparu. est-ce normal ?

    Merci.

    1. Frédéric LE GUEN

      Il n'est pas possible de faire réafficher les valeurs d'un mois précédent. Ce tuto montre comment les couleurs changent automatiquement uniquement.
      La conception d'un calendrier qui permette le réaffichage des valeurs précédentes est un projet complexe qui ne peut pas faire l'objet d'un simple article web.

  4. phil54

    Bonjour et merci beaucoup pour vos informations. J'ai pu créer le calendrier sous excel et qui fonctionne parfaitement. J'ai rencontré une difficulté à intégrer une mise en forme conditionnelle à partir d'une 2ème feuille car j'ai un message qui s'affiche me disant que c'est impossible. Ce que j'ai pu confirmer par ailleurs (sources internet toujours, ça vaut ce que ça vaut). J'ai contourné le problème en trouvant une autre formule et ça fonctionne donc problème résolu.
    Néanmoins, je souhaite suivre les absences des personnes en utilisant un code couleur. Le problème, c'est que si je remplis les cellules en vert par exemple du 01 juillet au 15 pour Monsieur Untel car il est en vacances, je retrouve les mêmes cellules remplies tous les mois à la même période. Du coup, l'intérêt pour moi est bien moindre. Y a-t-il une solution ?
    Merci.

  5. Richter

    Bonjour

    j'ai un problème avec la formule automatique du jour de pâques qui ne fonctionne pas
    Je n'arrive pas à l'automatiser et j'ai toujours l'erreur NOM qui s'affiche
    Pour information, je suis sur un Excel 2010 en version française

    1. Frédéric LE GUEN

      Bonjour,
      Il n'y a pas de raison. Dans le classeur que vous avez téléchargée, dans la feuille 2 toutes les formules fonctionnent quelques soit la version d'Excel

  6. huguet

    Bonjour,

    Merci beaucoup pour ce tuto, j'ai pu me faire un planning sympa.
    Seul "hic", c'est... l'effacement total du contenu. Je m'explique :

    J'ai mon planning fonctionnel, je choisi "janvier 2018".
    Ici j'intègre des infos de planning avec une mise en forme conditionnelle.
    La mise en forme est : si dans les cellules, j'écris " I " pour Intervention, alors remplir la cellule en rouge.
    Et là, je souhaite remplir le mois de février... je le rempli, et je reviens ensuite sur le mois de janvier : tout a disparu.
    Je retourne sur le mois de février : tout a également disparu.

    Je comprends bien qu'il s'agit de la formule "ClearContents", qui efface donc le contenu des cellules. Mais quelle est l'utilité d'un tel planning si au fur et a mesure, les infos sont supprimées ?
    N'existe-t-il pas de moyen de conserver les infos de tel mois pour telle année, puis de faire appel à cette info lorsqu'on retourne sur ce mois/année ?
    Je ne sais pas si j'ai été clair, donc n'hésitez pas à me demander plus d'explication.

    1. Frédéric LE GUEN

      Bonjour,
      La vocation de se tuto est de présenter un planning vierge chaque mois. Mais ça ne reste qu'une interface de visualisation et pas l'enregistrement des données d'un mois sur l'autre avec possibilité de revenir consulter les mois précédents.
      Réaliser un tel classeur est un vrai projet de développement informatique et certainement pas un tuto. De plus chaque entreprise a des spécificités qui lui sont propres et c'est donc impossible d'imaginer de trouver votre solution sous forme de tuto sur le web.
      J'ai déjà réalisé pour d'autres entreprises ce type de projet. Si vous voulez que je m'en occupe, vous pouvez me contacter via le formulaire de contact sur la page d'accueil.

  7. HIROUX

    Bonjour

    Je souhaite débloquer le tuto pour une semaine (2.99 €) mais ne souhaite pas passer par paypal..
    Comment faire?
    Merci

    1. Frédéric LE GUEN

      Bonjour,
      Je n'ai pas d'autres solution à vous proposer j'en suis désolé. Paypal est le seul système qui ne propose pas des frais excessifs par transaction.
      Mais il n'est pas nécessaire d'avoir un compte Paypal. Il vous suffit de renseigner le détail de votre carte bancaire pour finaliser la transaction

  8. Stéphan

    Bonjour,
    Je découvre votre tuto, intéressant.
    Je m’interroge toutefois sur le fait que les données remplies dans le calendrier sont perdues lorsqu'on passe d'un mois à l'autre ?
    Exemple : je remplis quelques heures sur juillet, je passe sur août puis revient sur juillet, plus rien ?
    Merci.

  9. Joseph

    Bonjour,

    Info complémentaire : Le titre dynamique fonctionne maintenant, la formule est ok, simple problème de copier - coller qui n'a pas fonctionné correctement.
    Le masquage ou non des colonnes en fonction du mois fonctionne correctement aussi.

    Cela fait moins de problèmes en suspens

    il ne reste plus que :

    - le coloriage des jours fériés qui ne fonctionne toujours pas malgré diverses tentatives

    - l'effacement du contenu des cellules dans les colonnes masquées du tableau que je ne sais pas comment intégrer dans la macro

    - pour le tableau des jours fériés à Genève, je l'ai reconstitué à partir des formules du tableau français, sauf pour le calcul du jeûne genevois qui se situe le jeudi suivant le 1er dimanche de septembre
    De plus la cellule année dans ce tableau se réfère à l'année en cours Cellule AN1 : = ANNEE(AUJOURDHUI())
    et je ne sais pas comment la remplacer automatiquement par l'année indiquée dans mon menu déroulant sans que cela fausse le calcul des autres cellules du tableau exemple dans la Cellule AN3 : =DATE($AN$1;1;1)
    afin de pouvoir préparer les planning de l'année suivante par exemple

    encore merci pour les éventuelles réponses

  10. Joseph

    Bonjour,

    Depuis mon commentaire précédent, j'ai rectifié une source d'erreur concernant la macro pour cacher les colonnes: mon tableau n'étant pas positionné à partir de la ligne 6 mais 7 j'avais oublié de rectifier !

    Mais reste la question du coloriage des jours fériés qui lui reste cantonné à la colonne du 31 du mois.

    Comment inclure à la macro l'effacement du contenu des cellules depuis la ligne juste en dessous de la date jusqu'au bas du tableau mais uniquement pour les colonnes cachées ?

    Et par quel procédé lier la cellule de la date du tableau dynamique à la date sélectionnée pour le calendrier afin de pouvoir calculer les jours féries sur une autre année ? (par exemple si je prépare mon planning de 2018, en 2017)

    Merci

  11. Joseph

    Bonjour,

    Tout d'abord, merci de votre contribution car elle me permet de dépasser un obstacle dans mon projet (planning et calcul automatisé des heures travaillées)

    Je suis un débutant voir plus que débutant sur Excel et j'utilise actuellement la version 2007

    J'ai suivi le tuto "Comment créer un calendrier automatique dans Excel" pas à pas, mais je reste bloqué sur 4 problèmes

    - message d'erreur pour la formule du titre dynamique (même en enlevant le dernier " => peut être en lien avec les formats de date par rapports aux versions plus récentes d'excel ??

    - le coloriage des jours fériés car Excel ne me permet pas de me référer à une autre feuille dans le classeur alors j'ai inclus le tableau directement dans la feuille mais ça ne fonctionne pas : les jours fériés ne sont pas repérés mais uniquement le 31 du mois quel que soit le mois ou l'année.

    - la macro masque bien les colonnes mais elles ne réapparaissent plus lorsque je change de mois.

    - Tableau dynamique des jours fériés : comme je n'ai pas encore entièrement compris la formule s'y référant, existe-t-il un tableau dynamique des jours fériés suisses ainsi que la formule permettant la mise en forme conditionnelle

    Merci de bien vouloir prendre le temps de me répondre

  12. 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. Joseph

      Bonjour, j'ai eu le même problème, simplement parce que le n'avais pas intégré la ligne comprenant les dates dans la sélection.
      Dès que j'ai englobé la ligne avec le reste du tableau ça a fonctionné

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

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

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

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

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

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

  19. 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?

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

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

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

  23. 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 ?

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

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

  26. 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 ?

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

  28. Anonyme

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

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

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

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

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

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

  34. 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 ?

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

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

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

  38. Frédéric LE GUEN

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

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

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

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

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

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

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

  45. ARNAUD

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

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

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

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

  49. james Bond 007

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

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

  51. khadija

    parfait. je vous remercie

  52. 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??

  53. 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 !

  54. 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 .. --'

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

  56. 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 "

  57. Destin

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

  58. Anonyme

    Parfait ! Merci

  59. 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!

  60. 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 🙂

  61. chaden

    vraiment mille merci ☺

  62. Anonyme

    excellent tuto

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

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

  65. Divine mankanguila

    Merci beaucoup

  66. Anonyme

    Merci pour ce site !

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

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

  69. 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 *