Macro : Mise en forme d'un graphique

  • Initiateur de la discussion Initiateur de la discussion Feitan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Feitan

XLDnaute Nouveau
Bonjour à tous,

Voilà mon souci, j'espère pouvoir trouver une solution 🙂

En fait, grâce à l'enregistreur de Macro, je créé un graphique à partir de données, jusque là pas de problème.

Sauf que, une fois le graphique créé, j'aimerai que la macro mette en forme le tableau (en terme de dimension et de positionnement sur la feuille).

Or, cela ne marche pas. Je pense savoir d'ou vient le problème, car la Macro enregistre le nom du graphique précédemment créer, et donc lorsque j'en créé un nouveau (après avoir effacé le graphique précédent), et bien la mise en forme ne marche pas.

Ma question est donc : Comment faire pour que la mise en forme du graphique se fasse avec la macro.
Voici le moment ou le script merdouille, je pense que c'est à cause de "Graphique 15", à la place, je voudrai le remplacer par "le grahique qui vient d'être créé".

Merci à vous pour votre aide.

ActiveChart.HasLegend = False
ActiveSheet.Shapes("Graphique 15").ScaleWidth 0.71, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 15").ScaleHeight 0.61, msoFalse, _
msoScaleFromBottomRight
ActiveSheet.Shapes("Graphique 15").ScaleWidth 0.85, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 15").IncrementLeft 114#
ActiveSheet.Shapes("Graphique 15").IncrementTop -34.5
 
Re : Macro : Mise en forme d'un graphique

Re-Bonjour,

J'ai finalement trouvé, voici la réponse pour ceux que ça pourrait intéresser.

Il faut remplacer "Graphique 15" par la ligne :
ActiveSheet.Shapes(ActiveSheet.Shapes.count)

Bonne journée à tous !

J'en profite pour vous poser une autre question :

J'aimerai en fait qu'après avoir été redimmensionné, mon graphique se place en face de certaines données. Or, le contenu des cellules de la feuille changent (elle peuvent accueillir un contenu plus ou moins important), du coup, comment faire pour que, quoiqu'il arrive, une fois redimmensionné, mon graphique se mette entre les lignes G41 et G47 ? Est-ce possible ?

Merci beaucoup.
 
Dernière édition:
Re : Macro : Mise en forme d'un graphique

Bonjour,

Pour le positionnement en XY du graphe, j'avais fait quelque chose comme ceci ; il faut calculer la positions X, en points, en additionnant les largeurs des colonnes précédant le graphe et la position Y, en points, en additionnant les hauteurs des lignes précédant le graphe :

Code:
    ' ----- Calcul position du graphe
    
    For Cpt = 0 To NbColonnesAvantGraphe-1
        DecalHoriz = DecalHoriz + Range("A1").Offset(0, Cpt).ColumnWidth
    Next Cpt
    PosHor = DecalHoriz * 5.71 + n
    For Cpt = 0 To NbLignesAvantGraphe-1
        DecalVert = DecalVert + Range("A1").Offset(Cpt, 0).RowHeight
    Next Cpt
    PosVert = DecalVert + m

    ' ----- Création du graphe
    With .ChartObjects.Add(Left:=PosHor, Top:=PosVert, Width:=200, Height:=100)

etc...



Avec n ou m = décalage supplémentaire, si nécessaire, entre la colonne ou la ligne précédant le graphe et le côté du graphe (en Nb de points).
La valeur 5,71 fait la conversion largeur colonne en Nb caractères / largeur colonne en Nb de points)

à essayer, car je n'ai pas revérifié...

NOTA : Pour colonne et ligne avant graphe, le mieux est de nommer un cellule et de rechercher la position (ligne et colonne) de la cellule de ce nom, ainsi, s'il y a des modifications, elles sont automatiquement prises en compte...

Cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
495
Réponses
8
Affichages
659
Réponses
3
Affichages
754
Retour