Erreur 1004 : méthode Range pour données d'un graphe

Bonjour,

Voila mon petit problème.

J'ai un graphe qui se crée sur une feuille différente de celle ou se trouvent les données :

" Sub graphe_chargeZRLC()

Dim mongraphe As Chart, ma_feuille As Worksheet, plagedonnees As Range

Set ma_feuille = ThisWorkbook.Worksheets("Charge")

With ma_feuille

Set plagedonnees = Range("B5:M30")

Set mongraphe = .ChartObjects.Add(plagedonnees.Left, plagedonnees.Top, plagedonnees.Width, plagedonnees.Height).Chart

End With

With mongraphe

.ChartType = xlLine

.SetSourceData Source:=Range("'Données E'!$A$3:$A$232; 'Données E'!$J$3:$M$232")

End with

End sub

Quand j’exécute, il m'indique :

"Erreur 1004 : la méthode Range de l'objet Global a échoué"

Je ne comprends pas pourquoi, d'autant que quand j’arrête l’exécution puis la relance là ça fonctionne ...

Merci d'avance pour votre aide

Bonjour vbapratiquant

Un petit fichietr exemple simplifi la tâche pour ceux sui veulent répondre....

Dans ton code il faut diférentier les données des valeurs de l'axe et utiliser une autre syntaxe:

Sub graphe_chargeZRLC_2()
Dim mongraphe As Chart, ma_feuille As Worksheet, plagedonnees As Range
Set ma_feuille = ThisWorkbook.Worksheets("Charge")

With ma_feuille
    Set plagedonnees = .Range("B5:M30")
    Set mongraphe = .ChartObjects.Add(plagedonnees.Left, plagedonnees.Top, plagedonnees.Width, plagedonnees.Height).Chart
End With

With mongraphe
    .ChartType = xlLine
    .SetSourceData Source:=Sheets("Données E").Range("$J$3:$M$232")
    .SeriesCollection(1).XValues = Sheets("Données E").Range("$A$3:$A$232")
End With
End Sub

Il ne faut pas oublier le . dans Set plagedonnees = .Range("B5:M30")

Cordialement

Merci beaucoup de ton aide.

J'ai testé plusieurs trucs, mais si je veux afficher plusieurs courbes, dont les données ne sont pas dans les colonnes qui se suivent (ex colonnes B, D et G), je fais comment ?

Car avec Range je peux en mettre seulement deux il me semble ...

Faut-il créer d'autres series collections ou series ?

Merci d'avance.

14exemplegraphe.xlsm (41.31 Ko)

Bonjour vbapratiquant

Une solution :

Sub graphe_chargeZRLC_3()
    Dim mongraphe As Chart, ma_feuille As Worksheet, plagedonnees As Range, Sh As Worksheet
    Set ma_feuille = ThisWorkbook.Worksheets("Feuil2")
    Set Sh = ThisWorkbook.Worksheets("Feuil1")

    With ma_feuille
        Set plagedonnees = .Range("B5:M30")
        Set mongraphe = .ChartObjects.Add(plagedonnees.Left, plagedonnees.Top, plagedonnees.Width, plagedonnees.Height).Chart
    End With

    With mongraphe
        .ChartType = xlLine
        .SetSourceData Source:=Application.Union(Sh.Range("$B$2:$B$232"), Sh.Range("$D$2:$D$232"), Sh.Range("$G$2:$G$232"))
        .SeriesCollection(1).XValues = Sheets("Feuil1").Range("$A$3:$A$232")
    End With

End Sub

cordialement

Cela fonctionne parfaitement !

Un grand merci pour ton aide.

Rechercher des sujets similaires à "erreur 1004 methode range donnees graphe"