XL 2013 Syntaxe VBA (Erreur de manipulation liée au graphe)

vinciHorus

XLDnaute Junior
Bonjour je dois créer des graphes liés au choix de l'utilisateur sachant que les deux premières lignes sont fixe !! ci joint le fichier excel avec plus d'explication

nb: j'ai plusieurs lignes à la suite des deux premières pas juste les 2 comme présent dans l'excel ! c'est un exemple

j'ai un probleme sur une ligne :

ActiveChart.SetSourceData Source:=Range("feuil1!$PK$3:$PP$4, "feuil1!"$PK" & i & ":$PP" & i" ) sachant que i varie en fonction des lignes

erreur à l'écriture !! Y'a t'il un autre moyen à part resize dans ce cas ?

car avec resize on aura ceci : ActiveChart.SetSourceData Source:=Range("Feuil1!$PK$3:$PP$3").Resize(i - 1)
 

Pièces jointes

  • Classeur133.xlsm
    17.5 KB · Affichages: 10
Dernière édition:
Solution
Bonsoir VinciHorus,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal T As Range)
    If T.Count > 1 Then Exit Sub
    If Not Intersect(T, [Choix]) Is Nothing Then
        i = Application.Match(T, Range("D1:D7"), 0)
        ActiveSheet.ChartObjects("Graphique 2").Activate
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).Name = "anime"                      ' nom graph1
        ActiveChart.SeriesCollection(1).XValues = Range("E2:F2")            ' axe des X, inutile ici
        ActiveChart.SeriesCollection(1).Values = Range("E3:F3")             ' Y1 = Anime
        ActiveChart.SeriesCollection(2).Select
        ActiveChart.SeriesCollection(2).Name = Range("D" & i)               ' nom graph2...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir VinciHorus,
Un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal T As Range)
    If T.Count > 1 Then Exit Sub
    If Not Intersect(T, [Choix]) Is Nothing Then
        i = Application.Match(T, Range("D1:D7"), 0)
        ActiveSheet.ChartObjects("Graphique 2").Activate
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).Name = "anime"                      ' nom graph1
        ActiveChart.SeriesCollection(1).XValues = Range("E2:F2")            ' axe des X, inutile ici
        ActiveChart.SeriesCollection(1).Values = Range("E3:F3")             ' Y1 = Anime
        ActiveChart.SeriesCollection(2).Select
        ActiveChart.SeriesCollection(2).Name = Range("D" & i)               ' nom graph2
        ActiveChart.SeriesCollection(2).Values = Range("E" & i & ":F" & i)  ' Y2 = Choix
        ActiveSheet.ChartObjects("Graphique 2").Activate
        [A1].Select
    End If
End Sub
 

Pièces jointes

  • Classeur133 (1).xlsm
    25.5 KB · Affichages: 4

Discussions similaires

Réponses
4
Affichages
563

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87