Création macro graphique appliquer à une sélection choisie

Anonyme
2022-04-27T17:28:50+00:00

Bonjour,

J'ai un classeur excel avec plusieurs feuilles. Chaque feuille fait référence à une variable. Dans chaque feuille il y a trois tables de données (trois régions représentées) avec à chaque fois une présentation de scores moyens de la variable en fonction du genre et du groupe d'âge. En d'autres termes, sur une feuille, j'ai trois fois le même tableau, mais avec des moyennes différentes car les trois tableaux représentent des régions différentes. 

Ce que je fais pour le moment, c'est à chaque fois sélectionner une table, et créer un graphique. Et je fais ça pour toutes les tables, pour chaque feuille... C'est long. Je souhaiterai donc pouvoir créer une macro qui me permettrait en une touche de créer un graphique pour la plage sélectionnée par moi même (plutôt que de passer par tous les boutons de création de graphiques). Le graphique modèle est déjà créé. En faisant une macro, je parviens à voir et comprendre le code utilisé pour la création du graphique. Ce que je ne parviens pas à faire c'est appliquer cela pour la séletion que je fais... Pourriez-vous m'aider ? 

Merci d'avance pour votre temps :) 

Bonne soirée ! 

christophe

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

7 réponses

  1. DanielCo 107.7K Points de réputation
    2022-04-28T14:31:23+00:00

    Regarde le classeur :

    https://www.cjoint.com/c/LDCozWSvOgt

    La macro est dans le module de la feuille :

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Val1(9), C As Range, Ctr As Long, Graph As Shape, Co As ChartObject
    Dim S As Series, CheminModèle, Txt As String
    Cancel = True
    If (Target.Column = 3 And Target = "Mean") Or (Target.Column = 4 And Target = "ES") Then
    On Error Resume Next
    For Each Co In ActiveSheet.ChartObjects
    Co.Delete
    Next Co
    On Error GoTo 0
    CheminModèle = "C:\Users\dcola\AppData\Roaming\Microsoft\Templates" & _
    "Charts\Graphique1.crtx"
    Ctr = -1
    For Each C In Target.Offset(1).Resize(14)
    If C <> "" Then
    Ctr = Ctr + 1
    Val1(Ctr) = C
    ' Val2(Ctr) = C.Offset(, 2)
    End If
    Next C
    Set Graph = ActiveSheet.Shapes.AddChart2(1, xlColumnClustered)
    Graph.Chart.ApplyChartTemplate (CheminModèle)
    For Each S In Graph.Chart.SeriesCollection
    S.Delete
    Next S
    With Graph.Chart
    .SeriesCollection.NewSeries
    .SeriesCollection(1).Values = Val1
    .Axes(xlCategory).TickLabels.MultiLevel = False
    .SeriesCollection(1).XValues = "='Flandres MPT'!$AE$2:$AF$11"
    .Axes(xlCategory).TickLabels.MultiLevel = True
    With .SeriesCollection(1)
    .Points(1).Interior.Color = 8698359
    .Points(2).Interior.Color = 8424944
    .Points(3).Interior.Color = 14668229
    .Points(4).Interior.Color = 11570542
    .Points(5).Interior.Color = 9136460
    .Points(6).Interior.Color = 8698359
    .Points(7).Interior.Color = 8424944
    .Points(8).Interior.Color = 14668229
    .Points(9).Interior.Color = 11570542
    .Points(10).Interior.Color = 9136460
    End With
    End With
    End If
    End Sub

    Il faut cliquer sur "Mean" oou "ES" de la variable voulue pour l'exécuter. Auparavant, tu dois modifier la ligne "CheminModèle = ..." pour indiquer l'emplacement du fichier modèle sur ton ordinateur.

    Teste.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-04-28T12:17:37+00:00

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire