Un peu de méthode ...

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 »
 

Dranreb

XLDnaute Barbatruc
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:

guigol

XLDnaute Junior
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
 

bof

XLDnaute Occasionnel
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 !
 

Dranreb

XLDnaute Barbatruc
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa