Graph automatisé - problème

Bonjour à tous,

je souhaite réaliser une macro qui crée un graph automatiquement à partir d'une colonne A (date) et B (prix).

Le nombre de ligne est variable, j'ai donc essayé de rendre la macro dynamique.

J'ai tenté d'utiliser ChartObjects (testgraph) et Charts (testgraph2).

Dans le premier cas, rien ne se crée, et VBA renvoie une erreur 438.

Dans le deuxième cas, un graph est bien créé, mais 1.) il ne correspond pas à ce que je demande (ou alors je demande mal , et 2.) VBA renvoie une erreur 13.

Quelqu'un pourrait-il m'aider s'il vous plaît ?

Merci d'avance et bonne fin de journée à vous,

Marvin

18test-graph.xlsm (53.16 Ko)

Bonjour

Dans l'immédiat je n'ai pas regardé ton fichier mais je te passe malgré tout un fichier dans lequel j'ai créer un graph automatique.

Regarde le code vba peut etre y trouvera tu ta solution ou du moins un peu d'aide, et désolé par avance je pense que mon code n'est pas des plus jolis à relire

Merci pour la réponse Sylchat,

Excel plante à l'ouverture du fichier, il me dit que des objets ont disparu

Et j'ai un peu du mal à saisir le fonctionnement de la macro.

C'est le moment de la création du graph que je dois comprendre.

En tous cas merci d'avoir répondu,

Marvin

Il doit te manquer le complément que j'utilise dans le fichier, mince, je vais voir quel component il s'agit

Peux tu me dire quelle version de Xl tu utilises?

J'utilise Excel 2010

as tu office web component 11 d'installer?

Bonsoir

Tu peux tester cela:

Sub testgraph2()
'
' TEST GRAPH
Dim x As Integer
Dim mongraph As Charts
Dim prix
x = (Range("A1").End(xlDown).Row) - 1
Set prix = Range("a2:" & (Range("b1").Offset((x), (0)).Address))
Charts.Add
With ActiveChart
                .SetSourceData Source:=prix
                .ChartType = xlLine
                 Application.DisplayAlerts = False
                .Axes(xlCategory).TickLabels.NumberFormat = "[$-409]mmm-yy;@"
End With
End Sub

Bonjour,

J'ai retravaillé un peu le code du fichier original et de mon côté cela fonctionne :

Sub testgraph2()
'
' TEST GRAPH
'
'

'DEFINITION DE VARIABLES
Dim x As Integer
Dim mongraph As Charts
Dim prix As Range
' DEFINIT X
x = (Range("A1").End(xlDown).Row) - 1
'Instancie la plage à utiliser
Set prix = ThisWorkbook.Sheets("WTI $ & € VALUE").Range("A2:B" & x + 1)
ActiveWorkbook.Charts.Add
With Charts(ActiveChart.Name)
                .SetSourceData Source:=prix, PlotBy:=xlColumns
                .ChartType = xlLine
                 Application.DisplayAlerts = False
                .Axes(xlCategory).TickLabels.NumberFormat = "[$-409]mmm-yy;@"

End With

Qu'en est-il pour vous

@+

SylChat

Bonjour,

merci à SylChat et CB60 pour votre aide !

Les codes que vous proposez fonctionnent effectivement très bien.

Quelque chose m'interpelle en tous cas :

  • s'il est possible de créer un graph (Charts) sur une feuille séparée, il semble plus difficile de créer un graph intégré à la plage de données source (ChartObjects)
  • la mise en forme (couleur du cadre, couleur du trait, taille du trait ...) fonctionne a priori à l'enregistreur, mais pas lorsque l'on tape le code directement.

Peut-être dois-je chercher du côté d'Office web Component.

(la v11 semble dédiée à Office2003, mais il doit bien y avoir la même chose pour Office2010).

En tous cas merci à vous deux.

Bonne journée,

Marvin

Salut

N'hésites pas à fouiner sur la toile pour trouver les bons paramètres, j'avais un peu galérer pour paramétrer le web components mais à force de perséverance on y arrive.

Bon courage.

Rechercher des sujets similaires à "graph automatise probleme"