Variation Graphique Données par cellule sélectionnée
Si vous souhaitez créer un tableau de bord avec un graphique qui modifie ses données selon les options sélectionnées, vous pouvez utiliser les événements dans VBA. Oui, ça peut se faire. Nous n’aurons pas besoin de liste déroulante, de segment ou de zone de liste déroulante. Nous allons rendre les cellules cliquables et modifier les données pour créer un graphique à partir de la cellule sélectionnée.
Suivez les étapes ci-dessous pour créer des graphiques dynamiques dans Excel qui changent selon la sélection de cellule.
Étape 1: Préparez les données dans une feuille comme source pour le graphique.
Ici, j’ai quelques exemples de données de différentes régions dans une feuille. Je l’ai nommé données source.
Étape 2: Obtenez les données d’une région à la fois sur une feuille différente.
-
Maintenant, insérez une nouvelle feuille. Nommez-le correctement. Je l’ai nommé « Dashboard ».
-
Copiez tous les mois dans une colonne. Écrivez le nom d’une région à côté du mois.
-
Maintenant, nous voulons extraire les données de la région dans la cellule D1. Nous voulons que les données changent à mesure que la région change en D1. Pour cela, nous pouvons utiliser le
lien: / lookup-formulas-vlookup-with-dynamic-col-index [Two Way Lookup]
.
Étant donné que mes données source sont en A2: D8 sur la feuille de données source. J’utilise la formule ci-dessous.
= Data’!$A$2:$D$8, Data’!$A$1:$D$1,0)) |
Ici, nous utilisons l’indexation dynamique des colonnes pour VLOOKUP. Vous pouvez lire à ce sujet link: / lookup-formulas-vlookup-with-dynamic-col-index [ici]
.
-
Insérez un graphique en utilisant ces données sur la feuille de tableau de bord. J’utilise un graphique linéaire simple. Masquez la source du graphique si vous ne souhaitez pas les afficher.
Maintenant que vous modifiez le nom de la région dans D1, le graphique changera en conséquence. L’étape suivante consiste à modifier le nom de la région dans D1 lorsque vous sélectionnez une option dans la cellule spécifiée.
Étape 3: modifiez la région lorsque vous sélectionnez un nom de région dans la plage spécifiée. * Écrivez tous les noms de région dans une plage, je les écris dans la plage A2: A4.
-
Faites un clic droit sur le nom de la feuille de tableau de bord et cliquez sur « Afficher le code »
option pour entrer directement dans le module de feuille de travail dans VBE afin que nous puissions utiliser le lien: / events-in-vba-the-worksheet-events-in-excel-vba [worksheet event] `.
-
Maintenant, écrivez le code ci-dessous dans VB Editor.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A2:A4")) Is Nothing Then Range("A2:A4").Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value On Error GoTo err: Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select Target.Interior.ColorIndex = 8 End If err: End Sub
Et c’est fait. Désormais, chaque fois que vous sélectionnerez une cellule dans la plage A2: A4, sa valeur sera attribuée à D1 et les données du graphique changeront en conséquence.
J’ai expliqué comment ce code fonctionne ci-dessous. Vous pouvez le comprendre et apporter des modifications selon vos besoins. J’ai fourni des liens vers des rubriques d’aide que j’ai utilisées ici dans cet exemple. Alors vérifiez-les.
Comment fonctionne le code?
Ici, j’ai utilisé le lien: / events-in-vba-the-events-in-excel-vba [Event of Excel]
. J’ai utilisé un lien: / events-in-vba-the-worksheet-events-in-excel-vba [worksheet event]
« SelectionChange » pour déclencher les événements.
If Not Intersect(Target, Range("A2:A4")) Is Nothing Then
Cette ligne définit le focus sur la plage A2: A4 afin que l’événement SelectionChange se déclenche uniquement lorsque la sélection est dans la plage A2: A4. Le code entre If et End ne fonctionnera que si la sélection est dans la plage A2: A4. Vous pouvez maintenant le définir selon vos besoins pour rendre votre graphique dynamique.
Range("A2:A4").Interior.ColorIndex = xlColorIndexNone
Cette ligne définit la couleur de la plage A2: A4 sur rien.
region = Target.value On Error GoTo err:
Dans les deux lignes ci-dessus, nous obtenons la valeur des cellules sélectionnées dans la région variable et ignorons toute erreur qui se produit. n’utilisez pas la ligne «On Error GoTo err:» jusqu’à ce que vous soyez sûr de vouloir ignorer toute erreur qui se produit. Je l’ai utilisé pour éviter une erreur lorsque je sélectionne plusieurs cellules.
Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select
Dans les lignes ci-dessus, nous utilisons excels link: / general-topics-in-vba-vba-select-case-alternative-of-nested-if-else-if-statements [Select Case Statement]
pour définir la valeur de la gamme D1.
Target.Interior.ColorIndex = 8 End If err: End Sub
Avant l’instruction End If, nous changeons la couleur de l’option sélectionnée pour qu’elle soit mise en surbrillance. Alors l’instruction If se termine et err: la balise commence.
L’instruction On Error passera à cette balise si une erreur se produit pendant l’instruction select.
Téléchargez le fichier de travail ci-dessous.
Articles liés:
lien: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Événements de graphique incorporés utilisant VBA dans Microsoft Excel]
* | Les événements de graphiques intégrés peuvent rendre votre graphique plus interactif, dynamique et utile que les graphiques normaux. Pour activer les événements sur les graphiques, nous …
link: / events-in-vba-the-events-in-excel-vba [Les événements dans Excel VBA]
| * Il existe sept types d’événements dans Excel. Chaque événement a une portée différente. L’événement d’application traite au niveau du classeur. Cahier au niveau des feuilles. Événement de feuille de travail au niveau de la plage.
link: / events-in-vba-the-worksheet-events-in-excel-vba [Les événements de feuille de travail dans Excel VBA]
* | L’événement de feuille de calcul est vraiment utile lorsque vous voulez que vos macros s’exécutent lorsqu’un événement spécifié se produit sur la feuille.
lien: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [événements de classeur utilisant VBA dans Microsoft Excel]
| Les événements du classeur fonctionnent sur l’ensemble du classeur. Étant donné que toutes les feuilles font partie du classeur, ces événements fonctionnent également sur elles.
link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Empêcher qu’un automacro / eventmacro s’exécute en utilisant VBA dans Microsoft Excel]
* | Pour empêcher l’exécution de la macro auto_open, utilisez la touche Maj.
lien: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Chart object events using VBA in Microsoft Excel]
* | Les graphiques sont des objets complexes et vous y attachez plusieurs composants. Pour créer les événements graphiques, nous utilisons le module Classe.
Articles populaires:
lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité]
| Accélérez votre tâche. Ces 50 raccourcis rendront votre travail encore plus rapide sur Excel.
lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel]
| C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher des valeurs à partir de différentes plages et feuilles.
lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016]
| Comptez les valeurs avec des conditions en utilisant cette fonction étonnante. Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique.
La fonction Countif est indispensable pour préparer votre tableau de bord.
lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel]
| C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.