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.
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 SubMerci 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
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