Lancer une macro en modifiant certaines données

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
 

ROGER2327

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

llobica

XLDnaute Nouveau
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.
 

ROGER2327

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

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 194
Membres
104 449
dernier inscrit
Miguel937