Bug de macro "Réduction de taille" après passage de 2003 à 2010

Math77

XLDnaute Nouveau
Bonjour,

J'ai une macro excel qui me permet de tracer un certains nombres d'histogrammes.
Au cours de la création de l'histogramme, celui-ci est redimensionné afin d'être placé à la suite des autres sur une feuille, et c'est là que le bug intervient.
Jusqu'à présent (lors de mon utilisation de cette macro sous Excel 2003) tout fonctionnait correctement et c'est récemment, lors de ma migration vers Excel 2010, que ça fonctionne plus du tout.

Voici la partie du code concernée :

ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
Selection.Interior.ColorIndex = xlNone
ActiveWindow.Visible = False


' Réduction de la taille

Selection.ShapeRange.ScaleWidth 0.7, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
Select Case gra
Case 1: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop -157.5
Case 2: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop -157.5
Case 3: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop -157.5
Case 4: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop 66
Case 5: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop 66
Case 6: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop 66
Case 7: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop 286
Case 8: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop 286
Case 9: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop 286


End Select

Le programme plante sur la ligne en Rouge en me donnant une erreur '438' Propriété ou méthode non gérée par cet objet.

J'ai parcouru le forum et cela semble très proche de ce problème https://www.excel-downloads.com/thr...ntionnement-dune-fenetre-decommentaire.30341/
Il semble donc que le problème provienne de ma méthode de sélection et que l’utilisation d'un With soit plus adapté.

Je change donc la ligne rouge par :
With ActiveChart.PlotArea
.Shape.ScaleWidth 0.7, msoFalse, msoScaleFromTopLeft
.Shape.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
End With

Et j'obtiens le même message d'erreur...
Je ne comprends pas comment modifier tout ça pour ne plus avoir cette erreur...

Merci de votre aide
 
C

Compte Supprimé 979

Guest
Re : Bug de macro "Réduction de taille" après passage de 2003 à 2010

Bonjour Math77 et bienvenue sur ce forum ;)

Sans fichier c'est plus difficile, mais essaye comme ça
VB:
ActiveChart.PlotArea.Select
With Selection.Border
  .ColorIndex = 16
  .Weight = xlThin
  .LineStyle = xlContinuous
  .Interior.ColorIndex = xlNone
  ' Réduction de la taille
  .ShapeRange.ScaleWidth 0.7, msoFalse, msoScaleFromTopLeft
  .ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
  Select Case gra
  Case 1: Selection.ShapeRange.IncrementLeft -230.25
    Selection.ShapeRange.IncrementTop -157.5
  Case 2: Selection.ShapeRange.IncrementLeft 85
    Selection.ShapeRange.IncrementTop -157.5
  Case 3: Selection.ShapeRange.IncrementLeft 405
    Selection.ShapeRange.IncrementTop -157.5
  Case 4: Selection.ShapeRange.IncrementLeft -230.25
    Selection.ShapeRange.IncrementTop 66
  Case 5: Selection.ShapeRange.IncrementLeft 85
    Selection.ShapeRange.IncrementTop 66
  Case 6: Selection.ShapeRange.IncrementLeft 405
    Selection.ShapeRange.IncrementTop 66
  Case 7: Selection.ShapeRange.IncrementLeft -230.25
    Selection.ShapeRange.IncrementTop 286
  Case 8: Selection.ShapeRange.IncrementLeft 85
    Selection.ShapeRange.IncrementTop 286
  Case 9: Selection.ShapeRange.IncrementLeft 405
    Selection.ShapeRange.IncrementTop 286
  End Select
End With

A+
 

Math77

XLDnaute Nouveau
Re : Bug de macro "Réduction de taille" après passage de 2003 à 2010

Merci beaucoup pour ton aide!

Malheureusement ça ne fonctionne pas!
Ça plante au niveau de
.Interior.ColorIndex = xlNone

J'ai donc modifié ainsi :
ctiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous

End With
Selection.Interior.ColorIndex = xlNone
ActiveWindow.Visible = False

With ActiveChart.PlotArea 'j'ai également testé avec With Selection.Border, même erreur
' Réduction de la taille

'Selection.ShapeRange.ScaleWidth 0.7, msoFalse, msoScaleFromTopLeft
'Selection.ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
.ShapeRange.ScaleWidth 0.7, msoFalse, msoScaleFromTopLeft
.ShapeRange.ScaleHeight 0.75, msoFalse, msoScaleFromTopLeft
Select Case gra
Case 1: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop -157.5
Case 2: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop -157.5
Case 3: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop -157.5
Case 4: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop 66
Case 5: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop 66
Case 6: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop 66
Case 7: Selection.ShapeRange.IncrementLeft -230.25
Selection.ShapeRange.IncrementTop 286
Case 8: Selection.ShapeRange.IncrementLeft 85
Selection.ShapeRange.IncrementTop 286
Case 9: Selection.ShapeRange.IncrementLeft 405
Selection.ShapeRange.IncrementTop 286


End Select
End With

Mais j'obtiens de nouveau la même erreur (à la même ligne). ShapeRange ne semble pas adapter à PlotArea...
 

pascamau

XLDnaute Nouveau
Re : Bug de macro "Réduction de taille" après passage de 2003 à 2010

Bonjour,
Ayant eu le même problème, voici comment je l'ai résolu :

La sélection de l'objet ".Shapes(n)" est la solution
.....
ElseIf Val(Application.Version) >= 14 Then
ActiveChart.Select
ActiveChart.Shapes(1).Select
Selection.ShapeRange.IncrementLeft 42.75
h = ActiveChart.PlotArea.Top
Selection.ShapeRange.ScaleWidth h / hImage, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.Left = 1
End If
......
 

MJ13

XLDnaute Barbatruc
Re : Bug de macro "Réduction de taille" après passage de 2003 à 2010

Bonjour à tous

Comme dit Bruno :), sans fichier, c'est pas simple pour trouver une solution.

Oups, c'est pas récent :eek:.

Je testerai ta solution Pascamau :).
 
Dernière édition:

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 528
dernier inscrit
hplus