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 !!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 :
PS : pense à visiter www.excelabo.net/xl/graph.php C'est une vraie mine d'or. ;-) merci à son auteur !!!
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 :
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 :