IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Evénements de graphique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Evénements de graphique
    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":

    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
    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
    Option Explicit
    Dim adaptGraph As New Classe1
     
    Sub Worksheet_Activate()
    Set adaptGraph.GlobalChart = Sheets("Chart 4").ChartObjects("Chart1").Chart
    End Sub
    Mais mon code ne fonctionne pas. Pas de message d'erreur, on dirait simplement que le code ne s'exécute pas.
    Peut-être avez-vous une idée de ce qui est faux/de ce qui manque?

    Merci d'avance pour votre aide!

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pourquoi ne pas utiliser simplement les évènements standards des feuilles Charts ?
    https://msdn.microsoft.com/fr-fr/lib.../ff837379.aspx
    Par exemple BeforeDoubleClick ou Select.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [AC-2007] Evènements Graphique croisé dynamique
    Par Alex_42 dans le forum IHM
    Réponses: 0
    Dernier message: 30/01/2015, 09h19
  2. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  3. Réponses: 5
    Dernier message: 14/11/2006, 15h57
  4. Evènement sur clic droit !?
    Par soccersoft dans le forum Composants VCL
    Réponses: 6
    Dernier message: 26/12/2002, 21h39
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo