Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Calendrier automatique - Une formule simple
La
fonction Sequence, judicieusement embarquée dans la
fonction Date, permet de créer très rapidement un
calendrier, en fonction du choix d'un
mois et d'une
année. La méthode est encore plus simple que l'exploitation d'une
formule matricielle que nous avions démontrée à ce sujet.
Sur l'exemple illustré par la capture, au choix d'une
année et d'un
mois par l'utilisateur, toutes les
dates de la période ainsi définie se recomposent, sans dépasser la limite du mois. Vous pouvez le constater sur cet exemple avec le 29 février pour cette année bissextile.
Classeur Excel à télécharger
Pour la construction de ce
calendrier, nous suggérons d'agir à partir d'un
classeur Excel qui offre notamment deux listes déroulantes pour opérer les choix sur l'année et le mois.
C'est en
cellule C3 qu'une première liste déroulante permet de choisir l'année. Si vous consultez sa barre de formule, vous remarquez que c'est la date du premier jour de cette année qui est en fait inscrite. C'est un format personnalisé qui permet de ne conserver la précision que sur l'année. C'est une autre liste déroulante en
cellule F3 qui permet de choisir le mois. Là aussi, c'est le premier jour d'une année qui apparaît dans la barre de formule. Mais un format personnalisé leurre l'affichage.
L'année d'une date
La
fonction Excel Date permet de recomposer une date en fonction d'informations précises sur l'
année, le
mois et le
jour. Les deux premières données sont fournies par les deux listes déroulantes. L'information sur le jour doit être matricielle pour recomposer la
suite de tous les jours d'un mois, avec une
seule formule. Nous comprendrons très vite l'astuce.
- Sélectionner la première case du calendrier en cliquant sur sa cellule B5,
- Taper le symbole égal (=) pour débuter la construction de la formule,
- Inscrire la fonction de construction de dates, suivie d'une parenthèse, soit : Date(,
La première information demandée par cette fonction est la
précision sur l'année. Comme elle est fournie sous forme de date complète, nous devons l'isoler grâce à la
fonction Annee.
- Inscrire la fonction pour isoler l'année d'une date, suivie d'une parenthèse, soit : Annee(,
- Puis, désigner la date de l'année en cliquant sur sa cellule C3,
- Fermer la parenthèse de la fonction Annee,
- Puis, taper un point-virgule (;) pour passer dans l'argument du mois,
Là encore, cette donnée est fournie sous forme de
date complète. Cette fois, c'est la
fonction Mois qui permet d'isoler le
numéro de mois d'une date.
- Inscrire la fonction pour le numéro de mois, suivie d'une parenthèse, soit : Mois(,
- Désigner la date du mois en cliquant sur sa cellule F3;
- Fermer la parenthèse de la fonction Mois,
- Puis, taper un point-virgule (;) pour passer dans l'argument du jour,
Suite des jours d'un mois
C'est ici que l'astuce doit intervenir. Nous le savons, l'enjeu n'est pas de construire la date d'un jour précis. Il est question de livrer
toutes les dates en même temps, pour le
mois et l'année choisis. Dans ce dernier argument, nous devons donc engager la
fonction matricielle sequence pour construire automatiquement une
suite de numéros, suffisamment grande.
- Inscrire la fonction de suite logique suivie d'une parenthèse, soit : Sequence(,
- En premier argument, taper le chiffre 6,
Ainsi, nous demandons de créer une
matrice de 6 lignes, soit exactement du même nombre que celles de notre tableau de réception.
- Taper un point-virgule (;) pour passer dans l'argument du nombre de colonnes,
- Taper de nouveau le chiffre 6,
Nous demandons donc que cette matrice soit aussi composée du même nombre de colonnes que celui de notre tableau de réception. Nous allons donc construire une suite de
36 numéros, bien supérieure à la taille maximale d'un mois de l'année. Mais, c'est encore une astuce qui corrige automatiquement le défaut. Nous le verrons.
- Fermer la parenthèse de la fonction Sequence,
En l'absence de précision sur le pas de cette suite, la
fonction Sequence réalise naturellement des incrémentations d'une unité.
- Fermer la parenthèse de la fonction Date,
- Enfin, valider la formule matricielle par la touche Entrée du clavier,
Comme vous pouvez le voir, les 36 dates tombent.
Vous pouvez vérifier la véracité de ces dernières en vous calant sur le mois en cours.
Les dates hors du mois
Par contre et comme nous l'avons annoncé, un défaut gênant saute aux yeux. La série de dates dépasse allègrement la borne supérieure du mois demandé. Ce phénomène est tout à fait naturel et vous l'avez compris, étant donné que nous avons choisi de construire une suite de 36 numéros. L'astuce est simple. Elle consiste à bâtir une
règle de miseen forme conditionnelle sur ce tableau. Cette règle doit masquer la date en cours d'analyse, lorsque cette dernière déborde du mois.
- Sélectionner toutes les cellules du tableau, soit la plage B5:G10,
- Dans la section Styles du ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
- En bas des propositions, choisir l'option Nouvelle règle,
- Dans la boîte de dialogue qui suit, sélectionner le type : Utiliser une formule pour ...,
- Puis, cliquer dans la zone de saisie du dessous pour l'activer,
- Dans cette zone, taper la syntaxe suivante : =MOIS(B5)<>MOIS($B$5) ,
Les deux cellules désignent la même première date de la série. Pourtant ce ne sont pas les mêmes. La première est libre de suivre l'analyse chronologique de la règle. Elle ne porte pas de dollars (B5). La seconde est complètement figée par les dollars ($B$5). Donc, elle reste en place. C'est ainsi que nous allons détecter lorsque le mois d'une date dépasse le mois choisi. Dans ces conditions, il convient d'appliquer aux cellules, une couleur de police et une couleur de fond identiques à l'arrière-plan de la feuille. L'illusion sera parfaite. Les dates qui débordent ne seront plus visibles.
- En bas de la boîte de dialogue, cliquer sur le bouton Format,
- Dans celle qui suit, activer l'onglet Remplissage,
- Dans la palette de couleurs, choisir un gris semblable au fond de la feuille,
- Activer alors l'onglet Police de la boîte de dialogue,
- Avec la deuxième liste déroulante, choisir le même gris pour le texte,
- Puis, valider ces réglages d'attributs en cliquant sur le bouton Ok,
Nous sommes ainsi de retour sur la première boîte de dialogue qui résume parfaitement la situation. Toute date située au-delà de la période, est automatiquement masquée par ce subterfuge.
Il ne reste plus qu'à valider la création de la règle pour découvrir un
calendrier dynamique en bonne et due forme et ce, à l'aide d'une très simple formule embarquant la
fonction Sequence.