Plantages Automation sur graphiques

  • Initiateur de la discussion Thierry
  • Date de début
T

Thierry

Guest
J'avoue que je sèche......
Le problème : je génère des graphiques à partir d'un tableau lui-même constitué par macro VBA.

Tout se passe bien sauf quand je suis en train de générer les graphique; suivant le nombre (jusqu'à + de 30) on arrive à des comportements bizarres (Ex : erreur sur une ligne VBA, erreur automation, presse-papier qui ne colle plus les champs,.....) un peu comme s'il n'y avait plus de mémoire.....

Si je supprime la partie de code qui génère les graphiques tout se passe bien.

Le process Excel arrive à 24Mo (le fichier lui reste assez light : 174Ko ).

Quelqu'un a-t-il un exemple de création d'un ensemble conséquent de graphique dans la même feuille ?

Merci beaucoup..............

Ci-joint le code :

Set Graphique = sheetTdb.ChartObjects.Add(x, y, 400, 200)
Graphique.Activate
Graphique.Placement = xlFreeFloating
Graphique.Locked = True
With ActiveChart
.ChartType = xlLineMarkers
.SetSourceData Source:=sheetTdb.RangeRangeSources), PlotBy:=xlRows
.Location WHERE:=xlLocationAsObject, Name:=sheetTdb.Name
For l = 0 To NbAns
.SeriesCollection(l + 1).XValues = sheetTdb.Range('G6:R6')
.SeriesCollection(l + 1).Name = sheetTdb.Range('F' & j)
Next l
.HasTitle = True
.ChartTitle.Characters.Text = sheetTdb.Range(RangeNomSite)
End With
 
Z

Zon

Guest
Salut,

Plusieurs pistes pour essayer de trouver une solution:

La variable Graphique comment tu la déclares ?=> Il vaudrait mieux utiliser chartobject si ce sont des classeurs incorporés.
Tu utilises Graphique puis activechart, autant travailler que sur graphique. Enfin travailler avec les constantes en numérique et non par leur nom..

et Graphique = sheetTdb.ChartObjects.Add(x, y, 400, 200)
withg Graphique
.Placement = 3
.Locked = True
with .chart
.ChartType = 65
.SetSourceData sheetTdb.RangeRangeSources), 1

For l = 0 To NbAns
.SeriesCollection(l + 1).XValues = sheetTdb.Range('G6:R6')
.SeriesCollection(l + 1).Name = sheetTdb.Range('F' & j)
Next l
.HasTitle = True
.ChartTitle.Characters.Text = sheetTdb.Range(RangeNomSite)
End With


Est-ce que tu utilises Option explicit afin de voir si toutes tes variables sont bien déclarées ?


A+++
 

Statistiques des forums

Discussions
313 020
Messages
2 094 466
Membres
106 029
dernier inscrit
toto1590