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 :

Galère de graphiques [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Actuaire
    Inscrit en
    Juillet 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Actuaire
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 49
    Par défaut Galère de graphiques
    Bonjour à tous,

    J'essaie d'automatiser à partir de VBA la génération de graphiques. Ce n'est pas une tache aisée car je ne connais pas bien encore la syntaxe des graphiques.
    Voici mon code en l'état actuel:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Sub generation_graphiques()
     
    Dim i As Integer, j As Integer, k As Integer
    Dim col_graphe As Integer
    Dim nb_lignes As Double, line_value As Double
    Dim benchmark As Workbook, graphiques As Workbook
     
    Set benchmark = ActiveWorkbook
     
    'Comptage des lignes de l'onglet "Glossaire"
    nb_lignes = benchmark.Sheets("Glossaire").Range("A" & Rows.Count).End(xlUp).Row
     
    'Repérage de la colonne contenant l'info "Graphique"
    col_graphe = 1
     
    While Sheets("Glossaire").Cells(1, col_graphe).Value <> "Graphique"
        col_graphe = col_graphe + 1
    Wend
     
    'création d'un nouveau classeur
    Workbooks.Add
    ActiveWorkbook.SaveAs ("Graphiques benchmark.xlsx")
     
    Set graphiques = Workbooks("Graphiques benchmark.xlsx")
     
     
    'La colonne "Graphique" est parcourue ligne par ligne, s'il y a un X, on génère un graphique selon l'information contenue dans la colonne suivante
     
    For i = 1 To nb_lignes
        If benchmark.Sheets("Glossaire").Cells(i, col_graphe).Value = "X" Then
     
            line_value = benchmark.Sheets("Glossaire").Cells(i, 7).Value
     
            graphiques.Sheets.Add
            graphiques.ActiveSheet.Name = benchmark.Sheets("glossaire").Cells(i, 2).Value
     
            graphiques.ActiveSheet.Shapes.AddChart.Select
     
            'Cas du graphiques en lignes
            ActiveChart.ChartType = xlLine
     
            ActiveChart.SetSourceData Source:=Range(benchmark.Sheets("interface").Cells(line_value + 1, 2), benchmark.Sheets("interface").Cells(line_value + 20, 16))
     
             ActiveChart.SeriesCollection(1).XValues = Range(benchmark.Sheets("interface").Cells(3, 3), benchmark.Sheets("interface").Cells(3, 17))
     
     
     
     
     
        End If
     
     
     
    Next i
     
     
    End Sub
    la macro marche mais les données du graphique sont inversées, c'est à dire que les colonnes sont en abscisse et inversement.
    J'ai essayé avec l'enregistreur de macro d'activer le bouton "inverser les colonnes" dans la partie selection de données de l'outil graphique, et l'enregistreur me transcrit seulement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.SetSourceData
    du coup cela ne marche pas

    connaissez vous la commande permettant d'inverser les colonnes et les lignes afin que mes graphiques soient justes?

    merci d'avance
    Guillaume

  2. #2
    Membre confirmé
    Homme Profil pro
    Actuaire
    Inscrit en
    Juillet 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Actuaire
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 49
    Par défaut
    J'ai trouvé:
    pour info si un jour quelqu'un cherche
    il faut rajouter la ligne de code suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ActiveChart.PlotBy = xlRows
    voila!

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

Discussions similaires

  1. 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
  2. [AC-2002] Galère avec l'impression de graphiques
    Par Padawane dans le forum IHM
    Réponses: 1
    Dernier message: 21/04/2010, 11h50
  3. Réponses: 3
    Dernier message: 09/02/2003, 01h09
  4. [RAVE][DELPHI7] Comment faire un graphique ?
    Par DFANDOR dans le forum Rave
    Réponses: 7
    Dernier message: 06/02/2003, 20h25
  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