Un peu de méthode ...

  • Initiateur de la discussion Initiateur de la discussion guigol
  • 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 !

guigol

XLDnaute Junior
Bonjour,

J'ai appris les macros excel sur le tas. Et j'avoue je manque de méthode, de vocabulaire, de compréhension de comment tout cela marche exactement.

Mon problème d'aujourd'hui. (je suis un bavard, il y a un peu de texte avant d'arriver au fond du problème)

Je suis entrain de créer une macro qui insérera des graphiques dans autant de feuilles que de lignes de mon tableau, ...
pour faire tout ceci, pas de problème.

Le plus souvent, j'utilise l'enregistreur de macro, et je travaille sur le code.
Mais, je sais que je peux optimiser encore un peu plus.

Lorsque j'ai enregistré ma macro, j'ai obtenu ceci lorsque j'ai déplace mon graphique à l'endroit souhaité.

<code>ActiveSheet.Shapes("Graphique 1").IncrementLeft -510.75</code>

je vais donc modifier

Activesheet pour lui donner un nom avec une variable
"Graphique 1" va lui aussi un nom avec une variable.

IncrementLeft, ce n'est pas terrible. Je le sais. (il faudrait pouvoir lui donner sa position exacte, pas un déplacement) Mais comment savoir ce qu'il y a d'autres.

Par rapport à Shapes, je ne sais si c'est une méthode, une propriété, une fonction (pb de vocabulaire).

Lorsque je fouille un peu dans l'éditeur VBA, je peux afficher les "definitions" (MAJ+F2)
Mais à Shapes, je ne trouve pas IncrementLeft, par contre, je le trouve a Shape (sans le "s")


Ma question n'est donc pas de savoir par quoi remplacer IncrementLeft, mais de savoir ou trouver ce qui existe pour remplacer IncrementLeft et de comprendre comment fonctionne ce satané langage de programmation.

« Donne un poisson à un homme, il mangera un jour. Apprends-lui à pêcher, il mangera toute sa vie »
 
Re : Un peu de méthode ...

Bonjour.
Dans une feuille, un graphique c'est un objet de type ChartObject de la collection ChartObjects de la feuille.
Il possède les propriétés Top, Left, Height et Width.
 
Dernière édition:
Re : Un peu de méthode ...

Merci pour ton aide, mais j'avoue que je suis toujours perdu.

1 - comment savoir qu'un graphique est un ChartObject et non pas un Shape.

2 - Un ChartObject ne possède pas la propriété (fonction, méthode, ..) IncrementLeft

3 : je pourrais donc écrire ceci à la place ?
ActiveSheet.ChartObject("Graphique 1").left = 50
 
Re : Un peu de méthode ...

Bonjour,
Je suis entrain de créer une macro qui insérera des graphiques dans autant de feuilles que de lignes de mon tableau, ...
pour faire tout ceci, pas de problème.


Hum... ! Je suis un peu dubitatif : A moins que ton tableau ne comporte que quelques lignes ?
Rien de tel que de nombreux graphiques pour plier Excel rapidement...

Bon courage !
 
Re : Un peu de méthode ...

1 - comment savoir qu'un graphique est un ChartObject et non pas un Shape.
Vous pouvez toujours essayer MsgBox TypeName(Selection) pour connaitre le type d'un objet sélectionné.
2 - Un ChartObject ne possède pas la propriété (fonction, méthode, ..) IncrementLeft
Non, en effet il ne possède pas cette méthode.
3 : je pourrais donc écrire ceci à la place ?
ActiveSheet.ChartObject("Graphique 1").left = 50
Non, la collection des ChartObject s'appelle ChartObjects
 
- 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
17
Affichages
477
Retour