Bonjour,
J'ai un petit souci dans mon code.
Je souhaite lancer une procédure par un Call Sub xxxx( ici : arguments nécessaires)
Les éléments se trouvent dans plusieurs feuilles et je souhaite que le Sub xxxx(...) n'ait pas à connaître les noms de feuille de façon à pouvoir le réutiliser ailleurs, sans modif. Pour des Range ou des objets.Object, cela fonctionne mais pas pour le graphique. Quelqu'un peut-il ma dire où je me trompe? Merci d'avance
Cordialement
Sub xxxxxx()
' ....
' RM1 et RM2 sont les CodeName de deux feuilles
' Graph1 est le nom d'un graphique qui est dans RM1
' PlgeDonnX et PlgeDonnY sont des plages de données qui sont dans la feuille RM2
'Appel de procédure :
Call MiseEchGraph("Graph1", RM2.Range("DonnéesX"), RM2.Range("DonnéesY"))
' ....
' ....
End Sub
'Procédure:
Sub MiseEchGraph(NomDessin As String, PlgeDonnX As Range, PlgeDonnY As Range)
Dim RMx As Worksheet, RMy As Worksheet
Set RMx = Worksheets(PlgeDonnX.Worksheet.Name)
' .... Ici, cela fonctionne
With RMx
.Range(xxxxxx) = zzzzz
End With
'....Ici, cela ne fonctionne pas
With RMy
.ChartObjects(NomDessin).Activate
.Shapes(NomDessin).Width = Larg + 10
.Shapes(NomDessin).Height = Haut + 10
End With
'....
End Sub
J'ai un petit souci dans mon code.
Je souhaite lancer une procédure par un Call Sub xxxx( ici : arguments nécessaires)
Les éléments se trouvent dans plusieurs feuilles et je souhaite que le Sub xxxx(...) n'ait pas à connaître les noms de feuille de façon à pouvoir le réutiliser ailleurs, sans modif. Pour des Range ou des objets.Object, cela fonctionne mais pas pour le graphique. Quelqu'un peut-il ma dire où je me trompe? Merci d'avance
Cordialement
Sub xxxxxx()
' ....
' RM1 et RM2 sont les CodeName de deux feuilles
' Graph1 est le nom d'un graphique qui est dans RM1
' PlgeDonnX et PlgeDonnY sont des plages de données qui sont dans la feuille RM2
'Appel de procédure :
Call MiseEchGraph("Graph1", RM2.Range("DonnéesX"), RM2.Range("DonnéesY"))
' ....
' ....
End Sub
'Procédure:
Sub MiseEchGraph(NomDessin As String, PlgeDonnX As Range, PlgeDonnY As Range)
Dim RMx As Worksheet, RMy As Worksheet
Set RMx = Worksheets(PlgeDonnX.Worksheet.Name)
' .... Ici, cela fonctionne
With RMx
.Range(xxxxxx) = zzzzz
End With
'....Ici, cela ne fonctionne pas
With RMy
.ChartObjects(NomDessin).Activate
.Shapes(NomDessin).Width = Larg + 10
.Shapes(NomDessin).Height = Haut + 10
End With
'....
End Sub