Bonjour à tous,
J'aurais besoin d'un coup de main s'il vous plait. En effet, je souhaite réaliser un graphique sachant que l'étendue de la plage de données que doit traiter le graphique n'est pas connue.
En fait en fonction des données dans le fichier nous allons avoir plus ou moins de lignes à traiter dans le graphique.
J'ai donc cherché à créer une variable (LignesTableau) qui compte combien il y a de lignes dans mon tableau pour trouver la fameuse étendue (le + 4 est du au fait qu'il y ai 4lignes de passées pour le titre qui viendra après)
Or VBA n'a pas l'air d'aimer ma syntaxe (celle que je vous ai mis en rouge).
Je pense que je vais avoir le même probleme pour la légende des abscisses en vert j'ai "=Calcul!R6C1:R125C1" et il me faudrait un truc du genre "=Calcul!R6C1:RLignesTableauC1".
J'espère que vous allez pouvoir m'aider, merci d'avance
PS : je vous file la partie de ma macro concernée.
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 LignesTableau = Application.CountA(Range("A1:A65536")) + 4 ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(5, 1), Cells(LignesTableau, 4)), , xlNo).Name = _ "Liste1" Sheets("Calcul").Select Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Calcul").Range(Cells(6, 4), Cells(LignesTableau, 4)), PlotBy _ :=xlColumns ' En fait quand je fais Range("D6:D125") ca marche nickel sauf qu'il n'y aura pas toujours de données jusque la case 125, il me faudrait un truc en fonction de LignesTableau ActiveChart.SeriesCollection(1).XValues = "=Calcul!R6C1:R125C1" ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "Analyse des Ecarts" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Sous Chapitres" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Heures" End With
Partager