Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro dans une macro

13 réponses
Avatar
Magic Man
Bonjour,

C'est quoi la commande dans une macro pour appeler une autre macro ?

Merci.

--
Magic Man
magicman@zefo.ca

3 réponses

1 2
Avatar
Jac
... sans aucun doute, mais les bordures, une fois que ça a été contrôlé,
il n'y a plus jamais besoin d'y revenir, donc lisible ou pas, et à la limite
si c'était possible, visible ou pas, ça ne change rien.

Mais si ta macro fait 30 lignes au lieu de 300, il est parfois plus facile
et/ou plus rapide d'en survoler les étapes.

Pour ce qui est du nombre de lignes, bien sûr que trois lignes suffisent.
Mais quand je dis que l'enregistreur écrit 27 lignes, je veux que ceux qui
testent ce que j'avance puissent voir ce qui a été réduit pour ne plus faire
que 8 lignes. Mon but n'était pas d'expliquer comment réduire au max une
expression.
C'est pour celà d'ailleurs que j'ai gardé With Selection. Moi aussi, je le
supprime chaque fois. Mais là, je voulais éviter d'ouvrir un débat : c'est
mieux avec With qu'avec Selection répété x fois, ça va plus vite, c'est
comme ça qu'il faut faire sinon le vba va te punir, ...

A propos 3 lignes ne suffisent pas : si tu ne commences pas par un
"On error resume next", si ta sélection ne fait qu'une ligne ou qu'une
colonne, tu reçois un message d'erreur car il ne peut pas faire les
colonnes ou les lignes intérieures s'il n'y en a pas.
Je ne l'avais pas évoqué car ce n'était pas le propos.

Et tu pourras voir d'ailleurs, que MagicMan se demande ce que viennent
faire les bordures là dedans... C'est vrai que j'aurais dû me contenter d'un
laconique : "il suffit de mettre sur une ligne le nom de la macro à
appeler."

J'ai voulu être un peu didactique, et ça a lancé un débat et une
incompréhension.
Trop de vagues pour si peu. Ça m'apprendra à vouloir expliquer.

"Filochard" a écrit dans le message de news:

Pour l'exemple sur les bordures, 3 lignes doivent suffirent

Selection.Borders.Weight = xlThin
Selection.Borders(xlInsideVertical).Weight = xlHairline
Selection.Borders(xlInsideHorizontal).Weight = xlHairline

pour ce qui est de la réduction à une ligne :

Selection.Borders.Weight = xlThin:
Selection.Borders(xlInsideVertical).Weight = xlHairline:
Selection.Borders(xlInsideHorizontal).Weight = xlHairline

Ca ne présente aucun intérêt car cela rend les instructions peu lisibles



Avatar
Jac
Pas de souci, ce n'était qu'un exemple pour illustrer le concept de
"sous-macro".

"Magic Man" a écrit dans le message de news:

Je ne comprend pas ce que vous voulez dire par bordures ? Mes bordures
j'en ai je les ai fait manuellement mais rien de trop...

"Filochard" a écrit dans le message de news:

Pour l'exemple sur les bordures, 3 lignes doivent suffirent

Selection.Borders.Weight = xlThin
Selection.Borders(xlInsideVertical).Weight = xlHairline
Selection.Borders(xlInsideHorizontal).Weight = xlHairline

pour ce qui est de la réduction à une ligne :

Selection.Borders.Weight = xlThin:
Selection.Borders(xlInsideVertical).Weight = xlHairline:
Selection.Borders(xlInsideHorizontal).Weight = xlHairline

Ca ne présente aucun intérêt car cela rend les instructions peu lisibles




Avatar
Filochard
Pour ce qui est du nombre de lignes, bien sûr que trois lignes suffisent.


Ha bon ? Mais pourquoi ne pas l'avoir dit ?
Je pense plutôt que vous ne saviez pas que la collection 'Borders' ne
nécessitait pas
d'être suivie d'une quelconque constante pour concerner les 4 bordures...

... c'est mieux avec With qu'avec Selection répété x fois, ça va plus vite,
c'est
comme ça qu'il faut faire sinon le vba va te punir, ...


C'est une affirmation totalement gratuite ne reposant sur aucun fondement

A propos 3 lignes ne suffisent pas : si tu ne commences pas par un
"On error resume next", si ta sélection ne fait qu'une ligne ou qu'une
colonne, tu reçois un message d'erreur car il ne peut pas faire les
colonnes ou les lignes intérieures s'il n'y en a pas.


Vous êtes victime de phénomènes para-normaux localisés !
Les instructions fonctionnent quel que soit le cas de figure !

Ah j'oubliais : ne pas oublier de mettre en route l'ordinateur....

[Exit fil]

1 2