la macro se plante sur mon graphisme

3 réponses
Avatar
Jean-Claude
Bonjour,

sous Excel j'ai une macro utilisée depuis 2 ans, tous les mois. Or
maintenant elle se plante et je n'arrive pas à en déterminer la cause :

...
Set a = Union(Sheets("Param").Range("A1:B1"), _
Sheets("Param").Range(Sheets("Param").Cells(3, 1),
Sheets("Param").Cells(rp, 2)), _
Sheets("Param").Range(Sheets("Param").Cells(1, cp),
Sheets("Param").Cells(1, cp)), _
Sheets("Param").Range(Sheets("Param").Cells(3, cp),
Sheets("Param").Cells(rp, cp)))
Charts.Add
ActiveChart.Name = Sheets("Param").Cells(1, cp)
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=a, PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Delete
ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphiques"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Param").Cells(2, cp)
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False
x = .SeriesCollection.Count
.SeriesCollection(1).Border.ColorIndex = 3 (1)
.SeriesCollection(1).Select (2)
...

La macro se plante sur la ligne (1) ou (2) (si je supprime l'une, ca se
plante sur l'autre, et d'autres suivent du même genre pour la mise en forme)
en 1004 "erreur définie par l'application ou l'objet".
x = 2 donc j'ai bien mes 2 séries
pourtant quand je regarde les valeurs de ces 2 séries dans l'espion,
plusieurs zones (dont colorIndex) sont à "Impossible de lire la
propriété..."

Une explication ? Je suis un peu perdu...
Si besoin je peux mettre à dispo un exemple de mon fichier.
Merci bien.

Jean-Claude

3 réponses

Avatar
Jean-Claude
Oups j'oubliais :
Excel 2002 (sur XP et Seven).
Jean-Claude
Avatar
MichD
Bonjour,

Essaie comme ceci :

'------------------------------------------------
Sub test()
Dim A As Range, Rp As Long, Cp As Long, Sh As Worksheet

Rp = 2: Cp = 10
Set Sh = Sheets("Param")

With Sh
.Activate
Set A = Union(.Range("A1:B1"), .Range(.Cells(3, 1), .Cells(Rp, 2)), _
.Range(.Cells(1, Cp), .Cells(1, Cp)), _
.Range(.Cells(3, Cp), .Cells(Rp, Cp)))
Charts.Add
With ActiveChart
.Name = Sh.Cells(1, Cp)
.ChartType = xlLine
.SetSourceData Source:=A, PlotBy:=xlColumns
.SeriesCollection(1).Delete
.HasTitle = True
.ChartTitle.Characters.Text = Sh.Cells(2, Cp)
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False
x = .SeriesCollection.Count
.SeriesCollection(1).Border.ColorIndex = 3
.SeriesCollection(1).Select
.Location Where:=xlLocationAsObject, Name:="Graphiques"
End With
End With

End Sub
'------------------------------------------------





MichD
---------------------------------------------------------------
"Jean-Claude" a écrit dans le message de groupe de discussion :
5057554b$0$18070$

Bonjour,

sous Excel j'ai une macro utilisée depuis 2 ans, tous les mois. Or
maintenant elle se plante et je n'arrive pas à en déterminer la cause :

...
Set a = Union(Sheets("Param").Range("A1:B1"), _
Sheets("Param").Range(Sheets("Param").Cells(3, 1),
Sheets("Param").Cells(rp, 2)), _
Sheets("Param").Range(Sheets("Param").Cells(1, cp),
Sheets("Param").Cells(1, cp)), _
Sheets("Param").Range(Sheets("Param").Cells(3, cp),
Sheets("Param").Cells(rp, cp)))
Charts.Add
ActiveChart.Name = Sheets("Param").Cells(1, cp)
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=a, PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Delete
ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphiques"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Sheets("Param").Cells(2, cp)
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.HasLegend = False
x = .SeriesCollection.Count
.SeriesCollection(1).Border.ColorIndex = 3 (1)
.SeriesCollection(1).Select (2)
...

La macro se plante sur la ligne (1) ou (2) (si je supprime l'une, ca se
plante sur l'autre, et d'autres suivent du même genre pour la mise en forme)
en 1004 "erreur définie par l'application ou l'objet".
x = 2 donc j'ai bien mes 2 séries
pourtant quand je regarde les valeurs de ces 2 séries dans l'espion,
plusieurs zones (dont colorIndex) sont à "Impossible de lire la
propriété..."

Une explication ? Je suis un peu perdu...
Si besoin je peux mettre à dispo un exemple de mon fichier.
Merci bien.

Jean-Claude
Avatar
Jean-Claude
Merci de la réponse... qui m'a permis de trouver le problème.
En simplifiant la macro à l'extrême, je me rends compte avec honte que le
problème vient des données : une colonne entière était vide !
Merci encore
Jena-Claude