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

Incorporer une instruction dans une macro

8 réponses
Avatar
News pour elie
Bonjour à tous,
Je lis toutes les correspondantes et je vois qu'à chaque réponse, on réponds
par une instruction sous forme de macro avec la déclaration Sub() et End
Sub.
Cette instruction étant destinée à s'incorporer dans une macro existante,
faut-il conserver Sub et End Sub ou peut-on directement mettre la commande
dans la macro avec un espace par exemple?
Merci

8 réponses

Avatar
AV
Pas sur de comprendre ce que tu cherches exactement ...
Une instruction quelconque( valide) peut être incorporée à une macro existante
ou aussi faire l'objet d'une macro séparée et être appellée dans la macro
(sous-routine)
Exemple

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2
Sheets("Feuil1").Range("A2").Value = 20
End Sub

pourrait devenir :

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2 par appel de la macro2
Macro2
End Sub

Sub Macro2()
Sheets("Feuil1").Range("A2").Value = 20
End Sub

AV
Avatar
News pour elie
Bonjour AV,
Pour continuer une macro existante, j'ai demandé à plusieurs reprises des
instructions qui m'ont toujours été fournies sous forme de commandes avec un
début Sub(xx) et End Sub. Je n'ai gardé que les instructions intérieurs en
supprimant la déclaration Sub (xx) et la fin End Sub. Cela a parfaitement
fonctionné. Ai-je eu de la chance ou est-ce correct de ne garder que la
fonction elle-même dès le moment où elle s'incorpore dans un ensemble ??
Intéressants tes exemples que je mets de côté pour le futur.
Merci

"AV" a écrit dans le message de
news:
Pas sur de comprendre ce que tu cherches exactement ...
Une instruction quelconque( valide) peut être incorporée à une macro
existante

ou aussi faire l'objet d'une macro séparée et être appellée dans la macro
(sous-routine)
Exemple

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2
Sheets("Feuil1").Range("A2").Value = 20
End Sub

pourrait devenir :

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2 par appel de la macro2
Macro2
End Sub

Sub Macro2()
Sheets("Feuil1").Range("A2").Value = 20
End Sub

AV




Avatar
AV
...... Cela a parfaitement
fonctionné. Ai-je eu de la chance ou est-ce correct de ne garder que la
fonction elle-même dès le moment où elle s'incorpore dans un ensemble ??


Difficile, sur ce thème, de faire une réponse générique...
L'essentiel étant que "ça marche", on pourrait dire que tu as réussi (chance ou
pas)
Il peut être quand même interressant (code très long) de fractionner les
instructions en plusieurs macros car ça peut faciliter la "maintenance"
Ceci étant dit (c'est àdire pas grand-chose), il n'y a aucun problème à insérer
autant d'instructions que tu veux dans une macro existante dans la mesure où,
comme précisé dans la première réponse, chacune de ces instructions est valide
indépendamment du contexte

AV

Avatar
Gaenonius
Une macro ne peut comporter qu'une seule séquence Sub...End Sub.
Si tu essayes ce genre de "syntaxe", tu as une erreur et tu ne peux pas ni
compiler ni, a fortiori, exécuter le code :

Sub essai()
Sub test()
MsgBox "salut"
End Sub
End Sub

--
Gaenonius

Bonjour AV,
Pour continuer une macro existante, j'ai demandé à plusieurs reprises des
instructions qui m'ont toujours été fournies sous forme de commandes avec un
début Sub(xx) et End Sub. Je n'ai gardé que les instructions intérieurs en
supprimant la déclaration Sub (xx) et la fin End Sub. Cela a parfaitement
fonctionné. Ai-je eu de la chance ou est-ce correct de ne garder que la
fonction elle-même dès le moment où elle s'incorpore dans un ensemble ??
Intéressants tes exemples que je mets de côté pour le futur.
Merci

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

Pas sur de comprendre ce que tu cherches exactement ...
Une instruction quelconque( valide) peut être incorporée à une macro


existante

ou aussi faire l'objet d'une macro séparée et être appellée dans la macro
(sous-routine)
Exemple

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2
Sheets("Feuil1").Range("A2").Value = 20
End Sub

pourrait devenir :

Sub Macro1()
'instruction N°1
Sheets("Feuil1").Range("A1").Value = 10
'instruction N°2 par appel de la macro2
Macro2
End Sub

Sub Macro2()
Sheets("Feuil1").Range("A2").Value = 20
End Sub

AV









Avatar
News pour elie
Rebonjour,
Donc je ne peux que recopier l'intérieur de l'instruction; de toute façon,
je ne sais pas faire appel à une autre macro à partir d'une première. En
Basic, on avait l'instruction "Call"?
Merci

"News pour elie" a écrit dans le message de
news:cr317l$dup$
Bonjour à tous,
Je lis toutes les correspondantes et je vois qu'à chaque réponse, on
réponds

par une instruction sous forme de macro avec la déclaration Sub() et End
Sub.
Cette instruction étant destinée à s'incorporer dans une macro existante,
faut-il conserver Sub et End Sub ou peut-on directement mettre la commande
dans la macro avec un espace par exemple?
Merci




Avatar
Gaenonius
Call existe toujours, mais on peut généralement s'en passer :

Sub test()
MsgBox "Salut"
End Sub

Sub essai()
test
'ou :
'Call test
End Sub

--
Gaenonius

Rebonjour,
Donc je ne peux que recopier l'intérieur de l'instruction; de toute façon,
je ne sais pas faire appel à une autre macro à partir d'une première. En
Basic, on avait l'instruction "Call"?
Merci

"News pour elie" a écrit dans le message de
news:cr317l$dup$

Bonjour à tous,
Je lis toutes les correspondantes et je vois qu'à chaque réponse, on


réponds

par une instruction sous forme de macro avec la déclaration Sub() et End
Sub.
Cette instruction étant destinée à s'incorporer dans une macro existante,
faut-il conserver Sub et End Sub ou peut-on directement mettre la commande
dans la macro avec un espace par exemple?
Merci









Avatar
AV
je ne sais pas faire appel à une autre macro à partir d'une première.


C'est pourtant l'exemple que je t'ai initialement fourni !

AV

Avatar
News pour elie
Pour AV,
Merci, mais comme pour les macro où on peut mettre un commentaire avec une
apostrophe, les exemples devraient pouvoir également en bénéficier, car ce
qui est évident pour ceux qui animent ce site, ne l'est pas obligatoirement,
et de loin, pour ceux qui demandent.
Cela fait une chose de plus que j'ai appris. Merci à tous et bon réveillon

"AV" a écrit dans le message de
news:
je ne sais pas faire appel à une autre macro à partir d'une première.


C'est pourtant l'exemple que je t'ai initialement fourni !

AV