OVH Cloud OVH Cloud

Dimensionner dynamiquement un graphique (chart)

1 réponse
Avatar
Laurent
Comment redimensionner et repositionner un=20
objet "graphique" (chart) via une macro. je g=E9n=E8re ma=20
courbe dynamiquement mais ne parviens pas =E0 travailler sur=20
sa position et ses dimensions dans la feuille !!!

Merci de votre aide.

1 réponse

Avatar
Acheron
Bonsoir,

Je ne sais si ça convient :

Sub taille_graph2()
'
' Macro Taille Graphe applicable à TOUS les graphes d'une
feuille.
'
'
NbparLigne = CInt(InputBox("combien de graphes par
ligne ", , 3))
Largeur = CInt(InputBox("Largeur d'un graphe en mm", ,
200))
Hauteur = CInt(InputBox("Hauteur d'un graphe en mm", ,
150))
Ecart = CInt(InputBox("espacement entre graphes", , 10))
nbtot = ActiveSheet.ChartObjects.Count
For i = 0 To nbtot - 1
With ActiveSheet.ChartObjects(i + 1)
.Height = Hauteur * 2.841
.Width = Largeur * 2.841
.Left = Ecart + (i Mod NbparLigne) * (Ecart + (Largeur
* 2.841))
.Top = Ecart + Int(i / NbparLigne) * (Ecart + (Hauteur
* 2.841))
End With
Next
End Sub

Ceci est valable pour remettre de l'ordre dans tous les
graphes d'une feuille.

Il faut modifier le code si l'on désire le voir
s'appliquer à une sélection de plusieurs graphes... ou à
un graphe tout seul.

Si ta question concernait la plage intérieure de graphe,
enregistre une macro en modifiant la taille de la zone de
traçage, puis modifie le code en conséquent, en utilisant
qqch comme :

ActiveChart.PlotArea.Select
Selection.Left = 1
Selection.Top = 10
Selection.Width = 200
Selection.Height = 170

Voilà. Hope it helps.

Acheron

PS : pense à visiter www.excelabo.net/xl/graph.php
C'est une vraie mine d'or. ;-) merci à son auteur !!!