Bonjour,
J'ai une feuille Excel ("Chart 4") dans lequel sont insérés deux graphiques.
Le premier est un diagramme circulaire (un camembert) ("Chart1"), le deuxième un histogramme ("Chart2").
Je souhaiterais que quand l'utilisateur clique sur une partie du camembert, l'histogramme se mette à jour automatiquement.
En fait, le fait de cliquer sur une partie du camembert sélectionne des données dans un tableau (qui se trouve en B20:N27), données qui vont devenir la "source" de l'histogramme.
J'ai créé un module de classe "Classe 1":
Et sur la feuille qui contient les graphiques ("Chart 4"):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Option Explicit Public WithEvents GlobalChart As Chart Private Sub GlobalChart_MouseDown(ByVal ElementID As Long, _ ByVal arg1 As Long, ByVal arg2 As Long) Dim ID As Long Dim arg1 As Long Dim arg2 As Long Dim n As Integer GlobalChart.GetChartElement x, y, ID, arg1, arg2 If ElementID = 3 Then n = ActiveChart.SeriesCollection(1).Points(arg2).Value For i = 20 To 27 If n = Cells(i, 15).Value Then ThisWorkbook.Worksheets("Chart 4").Activate ActiveSheet.ChartObjects("Chart 2").Activate ActiveChart.FullSeriesCollection(1).Name = ThisWorkbook.Worksheets(4).Cells(i, 2).Value Set SourceRng = Sheets("Chart 4").Range("B" & i & ":N" & i) ActiveChart.FullSeriesCollection(1).Values = SourceRng End If Next End If End Sub
Mais mon code ne fonctionne pas. Pas de message d'erreur, on dirait simplement que le code ne s'exécute pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Option Explicit Dim adaptGraph As New Classe1 Sub Worksheet_Activate() Set adaptGraph.GlobalChart = Sheets("Chart 4").ChartObjects("Chart1").Chart End Sub
Peut-être avez-vous une idée de ce qui est faux/de ce qui manque?
Merci d'avance pour votre aide!
Partager