Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Couleurs automatiques du tableau au clic
Cette nouvelle astuce Excel montre comment modifier automatiquement l'ensemble des réglages de mise en forme d'un tableau en un seul clic.
Dans l'exemple illustré par la capture, une palette de couleurs est proposée à l'utilisateur, sur la droite du tableau. Au simple clic sur l'une de ses cases, les polices et bordures du tableau arborent automatiquement la couleur ainsi choisie.
Classeur source
Pour la démonstration de cette astuce, nous proposons de récupérer un tableau riche en données et déjà accompagné de cette palette graphique.
Double cliquer sur le fichier réceptionné pour l'ouvrir dans Excel,
Puis, cliquer sur le bouton Activer la modification du bandeau de sécurité,
Le tableau recense des activités de sorties dans certains départements. Il s'étend jusqu'à la ligne 103. A ce stade, un clic sur l'une des cases de la palette ne produit aucun effet.
Recalcul au clic de la souris
La formation Excel pour adapter automatiquement la vue d'un graphique au clic de la souris, nous avait appris une astuce fort intéressante. Les formules d'une feuille de calcul sont réactualisées à chaque modification entreprise dans une cellule. Mais il n'en est rien au changement de sélection, soit au clic de la souris dans une autre case. Pour forcer cette actualisation sur cette action, nous devons gérer un événement en VBA Excel.
Réaliser le raccourci clavier ALT + F11,
Nous basculons ainsi dans l'éditeur de code Visual Basic Excel.
Dans l'explorateur de projet sur la gauche, double cliquer sur Feuil1 (MEFTableau),
De cette manière, nous affichons la page de code associée à notre feuille de calcul au centre de l'écran.
En haut de cette page de code, déployer la liste déroulante de gauche,
Dans les propositions, cliquer sur l'objet WorkSheet,
Il désigne la feuille active, celle sur laquelle nous travaillons. Et cette action doit avoir pour effet de créer la procédure événementielle Worksheet_SelectionChange. Tout code inscrit entre ses bornes se déclenchera donc au moindre changement de sélection entrepris depuis la feuille MEFTableau. Si vous n'obtenez pas cette procédure événementielle, vous devez lui associer l'événement SelectionChange à l'aide de la seconde liste déroulante sur la droite.
Vous notez la présence de l'objet Target passé en argument de cette procédure. Il désigne la cible, soit la cellule cliquée. Grâce à certaines de ses propriétés, nous allons être en mesure de prélever les coordonnées de cette dernière afin de savoir quelle case de couleur a été cliquée dans la palette.
Entre les bornes de cette procédure, construire le code VBA suivant :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 7 And Target.Row >= 4 And Target.Row <= 8 Then
Application.Calculate
End If
End Sub
Pour optimiser les ressources de la feuille de calcul, nous cherchons à déclencher l'action de recalcul seulement si la case cliquée correspond à l'une des cases de couleur. C'est la raison pour laquelle nous vérifions trois conditions recoupées grâce à une instruction conditionnelle If. La case cliquée doit nécessairement se situer en septième colonne (G). Pour le vérifier, nous exploitons la propriété Column de l'objet Target (Target.Column = 7). Dans le même temps, cette case doit se situer entre les lignes 4 et 8. Cette fois, c'est la propriété Row de l'objet Target qui renseigne sur cette position. Dès lors, la méthode Calculate de l'objet Application ordonne le recalcul de la feuille.
Enregistrer les modifications (CTRL + S) et fermer l'éditeur de code VBA Excel,
Mise en forme au clic
Pour faire réagir les couleurs du tableau en fonction de la case cliquée dans la palette, nous devons construire une règle de mise en forme conditionnelle tout à fait particulière. Elle doit exploiter la fonction Cellule avec comme paramètre les attributs ligne et colonne. Elle renseignera ainsi sur les coordonnées de la cellule au moment du clic. Nous devons vérifier que la colonne est bien la septième, soit la colonne G. Dans le même temps, en fonction de l'indice de ligne, nous pourrons appliquer le réglage de couleur en cohérence (Bleu pour l'indice 4, Orange pour le 5 etc...). Et cette règle de mise en forme devra être répliquée et adaptée à quatre reprises pour les quatre autres cases de couleur dans la palette.
Sélectionner toutes les cellules du tableau, soit la plage B3:E103,
Dans la section Styles du ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
En bas de la liste 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 du dessous pour l'activer,
Dès lors, construire la syntaxe suivante : =Et(Cellule("ligne")=4; Cellule("colonne")=7),
Grâce à la fonction Et, nous pouvons vérifier les deux conditions à recouper. Si la ligne de la cellule vaut 4 pendant que la colonne vaut 7, nous savons que c'est la case bleue qui a été cliquée. Dans ces conditions, nous devons appliquer les attributs en cohérence aux bordures et aux polices du tableau.
Cliquer sur le bouton Format en bas de la boîte de dialogue,
Dans la boîte de dialogue qui suit, activer l'onglet Bordure,
Choisir un bleu similaire à celui de la palette avec la liste déroulante,
Puis, cliquer sur le bouton Contour sur la droite de la boîte de dialogue,
Nous encadrons ainsi de bleu toutes les cellules sélectionnées du tableau.
Activer ensuite l'onglet Police de la boîte de dialogue,
Avec la seconde liste déroulante, choisir le même bleu pour la couleur du texte,
Valider ces attributs de format par le bouton Ok,
De retour sur la première boîte de dialogue, valider la règle de mise en forme par Ok,
Le focus est rendu à la feuille. Pour l'instant aucune réaction ne peut être constatée au clic de la souris dans la mesure où ce bleu est celui appliqué par défaut au tableau. Nous devons désormais répliquer et adapter la syntaxe de la règle pour les autres cases de couleur :
=ET(CELLULE("ligne")=4; CELLULE("colonne")=7)
Sur les données toujours sélectionnées, il s'agit donc de bâtir les règles suivantes :
=ET(CELLULE("ligne")=5; CELLULE("colonne")=7), avec le orange pour le texte et les bordures,
=ET(CELLULE("ligne")=6; CELLULE("colonne")=7), avec la couleur jaune,
=ET(CELLULE("ligne")=7; CELLULE("colonne")=7), avec la couleur verte,
=ET(CELLULE("ligne")=8; CELLULE("colonne")=7), avec le gris très clair,
Désormais, au clic sur l'une des cases de la palette, l'ensemble du tableau adopte automatiquement la couleur choisie.