Lancer une macro en modifiant certaines données

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

llobica

XLDnaute Nouveau
Bonsoir à tous,

Voici un problème qui je pense doit être simple mais qui s'avère compliqué pour une novice comme moi...

J'ai créé une macro avec un bloc d'instructions que je répète n fois. Pour chaque répétition je ne change que 4 ou 5 paramètres.
J'aimerai savoir si au lieu de copier/coller ce bloc d'instructions et de changer manuellement les 3 ou 4 paramètres à chaque fois, je ne pourrais pas employer des arguments pour définir ces paramètres et faire une autre macro ou je mettrai une liste de "Call Macro1" ?

J'imagine que l'on peut faire quelque chose comme cela (avec un bloc d'instructions simplifié par exemple) :

Sub Macro1 ()
Dim NomFeuil As String
Sheets(NomFeuil).Select
End Sub

Sub Macro2
Call Macro1(Feuil3)
Call Macro1(Feuil2)
Call Macro1(Feuil4)
End Sub

Merci par avance pour l'aide que vous pourrez m'apporter à ce sujet !

Bien cordialement,

llobica
 
Re : Lancer une macro en modifiant certaines données

Bonjour llobica


Essayez ceci :
Code:
Sub Macro1(NomFeuil$)
Sheets(NomFeuil).Select
End Sub

Sub Macro2()
Call Macro1("Feuil3")
Call Macro1("Feuil2")
Call Macro1("Feuil4")
End Sub
(Il faut bien sûr qu'il existe des onglets nommé Feuil2, Feuil3 et Feuil4.)​



ROGER2327
#6114


Lundi 2 Tatane 139 (Commémoration du Père Ebé - fête Suprême Quarte)
27 Messidor An CCXX, 8,8315h - ail
2012-W28-7T21:11:44Z
 
Re : Lancer une macro en modifiant certaines données

Bonsoir ROGER2327,

Merci beaucoup pour votre réponse rapide et efficace !
Après test, cela fonctionne comme il se doit !

Pouvez-vous me dire à quoi sert le $ dans l'instruction Sub Macro1 (NomFeuil$) ? Faut-il le mettre après chaque paramètre comme ci-dessous ?

Sub Macro1(NomFeuil$, NomTest$)

Sheets(NomFeuil).Select

Range("A1").Select
ActiveCell.FormulaR1C1 = NomTest

End Sub


Sub Macro2()

Call Macro1("Feuil3", "Test1")

End Sub

Bien cordialement.
 
Re : Lancer une macro en modifiant certaines données

Re...



(...) Pouvez-vous me dire à quoi sert le $ dans l'instruction Sub Macro1 (NomFeuil$) ? (...)
$ permet de typer une variable comme étant une chaîne de caractères. Au lieu de Sub Macro1(NomFeuil$), on peut écrire Sub Macro1(NomFeuil As String).
Il existe d'autres abréviations de ce genre comme x& pour x As Long, x! pour x As Single.
Voyez l'aide de VBA pour connaître toutes ces abréviations.​


ROGER2327
#6115


Lundi 2 Tatane 139 (Commémoration du Père Ebé - fête Suprême Quarte)
27 Messidor An CCXX, 8,9983h - ail
2012-W28-7T21:35:46Z
 
- 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

Retour