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