Augmenter la plage de donnée d'un graph

Bonjour à tous,

Fraîchement inscrit dans la communauté "excel-pratique", j'ai besoin de votre aide.

J'ai longtemps cherché par moi même mais là je sèche.

J'aimerai me créer un dashboard sur une feuille excel qui me trace à l'aide d'une courbe, l'évolution de mon chantier de tuyauterie.

Plusieurs fois par semaine, je rentre dans un tableau, les valeurs d'avancement en pourcentage des 3 types de tuyaux que les tuyauteurs montent

L'acier au carbone, l'inox, et le plastique (que l'on nommera AA, BB et CC)

J'ai déjà réussi à me créer un bouton qui récolte depuis d'autres feuilles de mon classeur les 3 valeurs d'avancement de AA, BB et CC. Il me créer une nouvelle colonne à la date du jour dans la feuille "Résultat" et me colle les 3 valeurs.

001

Le but de ma demande est de pouvoir augmenter la plage de donnée de mon graph d'une colonne lorsque j'ai appuyer sur ce bouton.

J'avais trouvé sur internet un bout de code qui fonctionnait presque mais ma colonne A avec les types de tuyau (AA BB CC) me met le bazar.

Sauriez vous m'aiguiller s'il vous plait?

Voici mon bout de code

Sub ChartRangeAdd()
    On Error Resume Next
    Dim oCht As Chart, aFormulaOld As Variant, aFormulaNew As Variant
    Dim i As Long, s As Long
    Dim oRng As Range, sTmp As String, sBase As String

    Set oCht = ActiveSheet.ChartObjects(1).Chart
    oCht.Select
    For s = 1 To oCht.SeriesCollection.Count
        sTmp = oCht.SeriesCollection(s).Formula
        sBase = Split(sTmp, "(")(0) & "(<FORMULA>)" ' "=SERIES(" & "<FORMULA>)"
        sTmp = Split(sTmp, "(")(1) ' "..., ..., ...)"
        aFormulaOld = Split(Left(sTmp, Len(sTmp) - 1), ",") ' "..., ..., ..."
        aFormulaNew = Array()
        ReDim aFormulaNew(UBound(aFormulaOld))
        ' Process all series in the formula
        For i = 0 To UBound(aFormulaOld)
            Set oRng = Range(aFormulaOld(i))
            ' Attempt to put the value into Range, keep the same if it's not valid Range
            If Err.Number = 0 Then
                Set oRng = oRng.Worksheet.Range(oRng, oRng.Offset(0, 1))
                aFormulaNew(i) = oRng.Worksheet.Name & "!" & oRng.Address
            Else
                aFormulaNew(i) = aFormulaOld(i)
                Err.Clear
            End If
        Next i
        sTmp = Replace(sBase, "<FORMULA>", Join(aFormulaNew, ","))
        Debug.Print "Series(" & s & ") from """ & oCht.SeriesCollection(s).Formula & """ to """ & sTmp & """"
        oCht.SeriesCollection(s).Formula = sTmp
        sTmp = ""
    Next s
    Set oCht = Nothing
End Sub

Merci beaucoup pour vos retours

Bonjour

Inverse la logique et cela marchera tout seul

La source transposée, mise sous forme de tableau structuré et le graph associé au tableau : toute nouvelle ligne dans le tableau est automatiquement dans le graphique

graph tableau

Il y a fort à parier que le tableau pourrait directement être bâti automatiquement par une requête PowerQuery (intégré à Excel)

Je vais chercher de ce côté. Merci beaucoup

Rechercher des sujets similaires à "augmenter plage donnee graph"