Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

Yunchi

XLDnaute Nouveau
Bonjour,

En gros j'ai une macro qui permet de tracer un graphique et de le placer quelque part.

J'utilise les fontions :

Code:
ActiveSheet.Shapes(SonNom).Top = Range("D2").Top
ActiveSheet.Shapes(SonNom).Left = Range("D2").Left
ActiveSheet.Shapes(SonNom).ScaleWidth 1.21, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes(SonNom).ScaleHeight 0.95, msoFalse, _
msoScaleFromTopLeft

Ca me permet de caler mon graphique sur le D2 mais juste le coin en haut à gauche en fait.

J'ai essayer le .Right et .Bottom ou .Down mais ça n'existe pas apparement donc je me suis rabattu sur un ScaleWidth mais c'est pas précis à 100% et ça dépasse un peu :p

Donc est-ce que quelqu'un saurait l'équivalent du .Top ou .Left mais pour le coin en bas à droite svp ?

Merci
 

pierrejean

XLDnaute Barbatruc
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

bonjour Yunchi

Le coin en bas a droite de D2 c'est le haut a gauche de E3
Par contre je crois comprendre que tu veux caler ton Shape exactement sur une cellule
Je regarde
 

Yunchi

XLDnaute Nouveau
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

Bonjour pierrejean,

En fait je voudrais caler mon graphe de sorte qu'il sorte entre par exemple A1 et D8

Donc pour caler le coin en haut a gauche sur A1, pas de problème mais par contre pour caler le coin en bas à droite du graphique sur D8, soucis :p

.Right existe mais plante
.Bottom ou .Down sont introuvables :(

Merci pour ton aide
 

pierrejean

XLDnaute Barbatruc
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

Re

a tester

Code:
ActiveSheet.Shapes(SonNom).Width = ActiveSheet.Range("D2").Width
 ActiveSheet.Shapes(SonNom).Height = ActiveSheet.Range("D2").Height
 ActiveSheet.Shapes(SonNom).Top = ActiveSheet.Range("D2").Top
 ActiveSheet.Shapes(SonNom).Left = ActiveSheet.Range("D2").Left
 

pierrejean

XLDnaute Barbatruc
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

re

Pour A1 et D8

Code:
ActiveSheet.Shapes(SonNom).Width = ActiveSheet.Range("A1:D8").Width
 ActiveSheet.Shapes(SonNom).Height = ActiveSheet.Range("A1:D8").Height
 ActiveSheet.Shapes(SonNom).Top = ActiveSheet.Range("A1").Top
 ActiveSheet.Shapes(SonNom).Left = ActiveSheet.Range("A1").Left
 

mécano41

XLDnaute Accro
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

Bonjour,

Si tu veux positionner ton graphe toujours au même endroit par rapport à une colonne et une ligne déterminées, même en cas de changement des largeurs ou des hauteurs de lignes et colonnes, tu peux calculer la position souhaitée. Va voir ce que j'ai mis ici (au message #3), cela pourrait peut-être t'intéresser :

https://www.excel-downloads.com/threads/macro-mise-en-forme-dun-graphique.116118/

Attention, ce n'est pas vérifié...

Cordialement
 
Dernière édition:

Yunchi

XLDnaute Nouveau
Re : Excel 2003, aligner un graphique sur la grille et redimensionner efficacement

Donc en testant on a un graphe dont le coin en haut à gauche coincide avec le coin en haut à gauche de la cellule D2 donc le bord gauche et le bord du haut sont bien aligné.

et le
Code:
ActiveSheet.Shapes(SonNom).Width = ActiveSheet.Range("D2").Width
ActiveSheet.Shapes(SonNom).Height = ActiveSheet.Range("D2").Height
vont redimensionner le graphe donc là on a un graphe dans une cellule :)

Avec des tailles de cellules régulières on peut faire un *x mais dans certains cas mes cellules n'ont pas les même dimensions :(
 

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm