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