Insertion de pls graphiques dans une feuille excel avec VBA
cmoicv
Messages postés3Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention25 mars 2008
-
24 mars 2008 à 13:46
cmoicv
Messages postés3Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention25 mars 2008
-
25 mars 2008 à 17:12
Bonjour,
comme indiqué dans le sujet, je souhaite insérer plusieurs graphiques dans une même feuille excel, mais avec des données sources différentes. J'ai écrit un premier code générant le premier graphique. Il n'y a alors pas de problème. En revanche, quand j'utilise le même type de code pour générer le second graphique, j'obtiens l'erreur d'exécution 1004 : "la méthode cells de l'objet global a échoué". Pour VBA, les plages ne contiennent aucune donnée. Les variables utilisées sont définies par ailleurs et ne posent aucun pb. (j'ai testé le code du second graphique seul et il fonctionne).
Voici le code utilisé :
Sub Graphmagn()
' Tracer un graphique : magnétisation en fonction de Béta
Dim Plagea As Range
Dim Plageb As Range
Dim Plage As Range
' Définir la plage de données
Set Plagea = Range(Cells(2, TR + 3), Cells(m + 1, TR + 3))
Set Plageb = Range(Cells(2, TR + 5), Cells(m + 1, TR + 5))
Set Plage = Union(Plagea, Plageb)
'Propriétés du graphique
Charts.Add
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SetSourceData SourcePlage, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = _
"Evolution de la magnétisation en fonction de la température"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Température Béta"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Magnétisation"
End With
ActiveChart.HasLegend = False
End Sub
Si quelqu'un pouvait m'aider à comprendre. Merci d'avance
A voir également:
Insertion de pls graphiques dans une feuille excel avec VBA
cs_Liro
Messages postés159Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention30 septembre 2011 24 mars 2008 à 15:14
Je ne vais peut être pas t'être d'une grand aide mais si je devais faire ces graphiques je commencerai par le faire avec l'enregistreur de macro puis j'enlèverai tout le code superflu, c'est tellement pratique.
cmoicv
Messages postés3Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention25 mars 2008 24 mars 2008 à 15:26
Le problème n'est pas tant de générer les graphiques que de réussir à en afficher deux sur la même feuille. La macro du graphique en elle-même fonctionne correctement.
cmoicv
Messages postés3Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention25 mars 2008 25 mars 2008 à 17:12
EN fait, TR et m sont définis auparavant par l'utilisateur dans une Userform. Ce sont des variables integer. Dans mon cas, TR sert à définir un réseau et est repris dans le graphique pour définir l'emplacement des données. C'est un peu compliqué mais comme le réseau à une taille variable, l'emplacement des données varie également. m définit un nombre d'itération du programme.
Je ne sais pas si c'est là qu'est le problème, je ne pense pas. Pour moi, cela vient soit du fait qu'on ne puisse pas définir deux graphiques dans la même feuille excel soit de l'utilisation de range et de cells pour définir les données sources.
QUant au fait qu'il y aurait une erreur dans le code, c'est avant la ligne supposée fausse que le problème survient. Et comme je l'expliquai dans un message précédent, le code générant le graphique seul fonctionne sans problème.
Ci-dessous, la définition des variables TR et m si ça vous intéresse :
Public TR As Integer
Public m As Integer
TR = IsingForm.RepDimReseau
m = IsingForm.RepCycle