Graphique à séries variables

Bonjour à tous,

Pour faire simple, je cherche à faire un graphique de type "colonnes" (avec 2 séries de données pour être précis). Les plages de données pouvant varier, j'utilise des variables string (path1,path2 et noms) pour les définir.

Jusque là tout va bien, elles prennent exactement la valeur souhaitée :

"='Bilan Energies'!$F$23;'Bilan Energies'!$M$23;'Bilan Energies'!$T$23" (par exemple)

Cependant, quand vient le moment de définir la série de donnée, "Erreur d'exécution '1004', Erreur définie par l'application ou par l'objet" sur les lignes:

ActiveChart.SeriesCollection(1).Values = path1

ActiveChart.SeriesCollection(2).Values = path2

ActiveChart.SeriesCollection(1).XValues = noms

Je pense que le problème vient du fait que ces variables soient des string mais quand j'enregistre manuellement la macro, Excel met également un string:

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SeriesCollection(1).Name = "=""kwh/t"""

ActiveChart.SeriesCollection(1).Values = "='Bilan Energies'!$F$23;'Bilan Energies'!$M$23;'Bilan Energies'!$T$23"

Mon fichier comprenant de nombreux modules, vous ne pourrez pas comprendre pourquoi je construit "path1,path2 et noms" ainsi mais je suis sûr de leur valeur et que l'erreur ne vient pas de là.

En espérant avoir été clair, je vous remercie par avance

Sub Graphique_bilan()

    Dim letter1 As String
    Dim letter2 As String
    letter1 = "F"
    letter2 = "E"
    Dim path1 As String
    Dim path2 As String
    Dim compt As Integer
    compt = 0
    path1 = "="
    path2 = "="

    For i = 1 To 9
        If TbBool(i) = True And FeuilleExiste(ThisWorkbook, "Tab " & TbSite(i)) Then
            If compt = 0 Then
                path1 = path1 + "'Bilan Energies'!$" + letter1 + "$23"
            Else
                path1 = path1 + ";'Bilan Energies'!$" + letter1 + "$23"
            End If
            compt = 1
            letter1 = Chr(Asc(letter1) + 7)
        End If
    Next i

    compt = 0

    For i = 1 To 9
        If TbBool(i) = True And FeuilleExiste(ThisWorkbook, "Tab " & TbSite(i)) Then
            If compt = 0 Then
                path2 = path2 + "'Bilan Energies'!$" + letter2 + "$23"
            Else
                path2 = path2 + ";'Bilan Energies'!$" + letter2 + "$23"
            End If
            compt = 1
            letter2 = Chr(Asc(letter2) + 7)
        End If
    Next i

    Dim noms As String

    noms = "={"
    compt = 0

    For i = 1 To 9
        If TbBool(i) = True And FeuilleExiste(ThisWorkbook, "Tab " & TbSite(i)) Then
            If compt = 0 Then
                noms = noms + """" + TbSite(i) + """"
            Else
                noms = noms + ".""" + TbSite(i) + """"
            End If
            compt = 1
        End If
    Next i

    noms = noms + "}"

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xl3DColumnClustered

    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).Name = "=""KWh/T"""
    ActiveChart.SeriesCollection(1).Values = path1

    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(2).Name = "=""Tonnes produites (*10-2)"""
    ActiveChart.SeriesCollection(2).Values = path2
    ActiveChart.SeriesCollection(1).XValues = noms

End Sub

Bonjour et bienvenu(e),

Pour commencer, un peu de lecture.

https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html

Porte une attention particulière au point 6.

Cdlt.

N'ayant pas accès à la base de donnée contenant les fichier .cvs, vous ne pourrez pas le faire tourner

Rechercher des sujets similaires à "graphique series variables"