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 :

Affecter une macro à un élément d'un graphique [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Par défaut Affecter une macro à un élément d'un graphique
    Bonjour,

    Savez-vous s'il est possible d'affecter des macros à des éléments de graphiques ?
    Lorsque par exemple, je clicke droit sur l'un des histogrammes de mon graphique pour lui affecter une macro précise, Excel ne me propose pas l'option "Affectez une macro".
    Existe-il d'autres solutions ?

    Merci d'avance
    Benoît

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Tu peux le faire assez facilement si le graphique est sur une feuille de graphique. Par exemple, un clic sur la série n°2 d'un graphique provoque l'exécution d'une macro (mets ce code dans le module de la feuille) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
        Select Case ElementID
            Case xlSeries
            If Arg1 = 2 Then
                MsgBox "Macro"
            End If
        End Select
    End Sub
    Pour un graphique inclus dans un feuille de données, je vais regarder si c'est possible.

    Pour un graphique dans une feuille de données, ajoute un module de classe nommé "EventClassModule" (j'ai copié un classeur en anglais, mais je ne sais pas qui remercier) dans lequel tu définis la classe "Chart" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public WithEvents myChartClass As Chart
    Dans ce même module tu mets la macro qui déclenchera ton code (ici représenté par la macro "test" se trouvant dans un module de classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub myChartClass_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
        If ElementID = xlSeries And Arg1 = 1 Then
            test
        End If
    End Sub
    qui se déclenche si la série n°1 est sélectée.

    Au début, dans "thisWorkbook, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        InitializeChart
    End Sub
    "InitializeChart" est une macro d'un module standard qui initialise un instance de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim myClassModule As New EventClassModule
     
    Sub InitializeChart()
        Set myClassModule.myChartClass = _
            Sheets("Feuil1").ChartObjects(1).Chart
    End Sub
    Enfin, la macro exécutée (remplace-la par la tienne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        MsgBox "macro"
    End Sub
    Regarde le classeur joint.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Par défaut
    super, merci beaucoup !

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'ai oublié la liste des éléments et la signification des arguments :

    ElementID	 	Arg1	 	Arg2 
    xlChartArea		None		None
    xlChartTitle		None		None
    xlPlotArea		None		None
    xlLegend		None		None
    xlFloor			None		None
    xlWalls			None		None
    xlCorners		None		None	
    xlDataTable		None		None
    xlSeries		SeriesIndex	PointIndex
    xlDataLabel		SeriesIndex	PointIndex
    xlTrendline		SeriesIndex	TrendLineIndex
    xlErrorBars		SeriesIndex	None
    xlXErrorBars		SeriesIndex	None
    xlYErrorBars		SeriesIndex	None
    xlLegendEntry		SeriesIndex	None
    xlLegendKey		SeriesIndex	None
    xlAxis			AxisIndex	AxisType
    xlMajorGridlines	AxisIndex	AxisType
    xlMinorGridlines	AxisIndex	AxisType
    xlAxisTitle		AxisIndex	AxisType
    xlDisplayUnitLabel	AxisIndex	AxisType
    xlUpBars		GroupIndex	None
    xlDownBars		GroupIndex	None
    xlSeriesLines		GroupIndex	None
    xlHiLoLines		GroupIndex	None
    xlDropLines		GroupIndex	None
    xlRadarAxisLabels	GroupIndex	None
    xlShape			ShapeIndex	None
    xlPivotChartDropZone	DropZoneType	None
    xlPivotChartFieldButton	DropZoneType	PivotFieldIndex
    xlNothing		None		None

  5. #5
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2013
    Messages : 31
    Par défaut
    merci, je l'avais trouvé sur un Internet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter une macro à un bouton
    Par Cercle dans le forum VBA Word
    Réponses: 7
    Dernier message: 08/12/2010, 08h44
  2. Affecter une macro à un bouton
    Par billy78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/11/2007, 10h58
  3. affecter une macro à un bouton dans une feuille
    Par gu000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2007, 14h04
  4. Réponses: 4
    Dernier message: 27/05/2007, 19h09
  5. [VBA-E] Affecter une macro a un autre classeur
    Par Mac Twist dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2007, 16h38

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