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