Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro à paramètre

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

B

benoa

Guest
Bonjour à tous,

J'ai créé une macro à paramètre du type : Public Sub MaSubroutine(chaine As String)

Cependant, elle n’apparaît pas dans mes macro après enregistrement. Lorsque j'enlève le paramètre elle réapparaît dans mes macros : : Public Sub MaSubroutine(). Comment palier à ce problème? Dois-je obligatoirement créer une fonction dans ce cas?

Merci à tous pour vos suggestions.
 
Re : Macro à paramètre

Bonjour.
Il est normal que cette macro n'apparaissent pas dans les macros accessible.
En effet tu ne peux lancer directement une macro qui contient des arguments, seule une autre procédure peux appeler cette macro en lui transmettant les arguments 'call masubroutine("toto")'
Tu peux la transformé en fonction, mais ce n'est pas du tout le même chose.
Une fonction pourra être appeler de cette manière:
dans une procédure: monrésultat=masubroutine("toto")
Dans une feuille, dans une cellule :=masubroutine("toto")
Que veux tu vraiment faire?


Bonjour à pierrot
 
Re : Macro à paramètre

Bien alors je vais changer ma subroutine en fonction. Cependant, j'aimerais qu'elle ne renvoie aucune valeur, existe-il un type VOID comme dans les autres langages ?
 
Re : Macro à paramètre

Bonjour

Comme sousou, je trouve que ta question est ambiguë.

Si tu crées une procédure à laquelle tu passes des paramètres c'est en général qu'elle a une utilité et elle doit être appelée par une autre procédure qui lui passe le ou les paramètres.

SI tu nous disait plutôt le fin mot de l'histoire, à savoir la finalité du code...
 
Re : Macro à paramètre

En fait je dois passer en paramètre deux chaînes de caractères, retourner la cellule où se trouve ces deux chaines, puis permuter ces deux cellules. Sauf qu'après permutation, j'aimerais que cela s'arrête sans renvoyer de valeur.
 
Re : Macro à paramètre

Quand je crée ma subroutine et que je passe mes chaînes de caractères en variable et non en paramètre, ça fonctionne. Maintenant, je voudrais pouvoir effectuer le même travail avec des chaîne de caractères différentes... par passage en paramètre.
 
Re : Macro à paramètre

Bonjour à tous

benoa
F1 est toujours un précieux allié 😉
EXTRAIT AIDE VBA
 
Dernière édition:
Re : Macro à paramètre

Désolé mais je ne trouve pas ce que je cherche ici. Je souhaite passer un élément en paramètre, apparemment, on ne peut le faire qu'à l'aide de fonctions. Je souhaite ensuite réaliser un traitement, du style copier une cellule dans une autre puis m’arrêter sans renvoyé de valeurs, ce qui correspond plus à une subroutine. Je ne sais pas quoi utiliser pour résoudre mon problème.
J'aurais envie d'essayer :

Public Function MaFonction (Parametre As String) As Nothing
MaFonction = call MaSubroutine(Parametre)​
End Function

mais cela ne peut pas fonctionner.
 
Re : Macro à paramètre

Salut à tous (que du beau monde ici 🙂)

Benoa, une petite suggestion:
Tu pourrais sélectionner les 2 cellules à permuter ET lancer la macro ensuite.
Il suffit que celle-ci récupère les 2 sélections et effectue la permutation et/ou autres opération au passage. Et..c'est tout non ?

Bon courage
 
Re : Macro à paramètre

Oui parfait mais tu dit : "il suffit que celle-ci récupère les deux sélections et..." comment peut on "récupérer" cette sélection? Si je comprend bien, je sélectionne les deux cellules puis => outils => macro => MaSubroutine
 
Re : Macro à paramètre

Re
Pourquoi ne pas nous joindre un exemple précis de ce que tu veux.
Deux questions?

1/ définir les actions à effectuer dans la procédure
2/ quelle action doit lancer cette procédure ou fonction ou.....
 
Re : Macro à paramètre

C'est bon j'ai pris l'idée de JAM en passant non pas un paramètre mais en selectionnant la cellule avec ActiveCell. Merci à tous pour votre aide. 🙂
 
Re : Macro à paramètre

Re,
comment peut on "récupérer" cette sélection?
Il suffit d'utiliser:
Code:
selection
Ensuite tu fais ta permutation en récupérant les valeurs/formules (?) à permuter

Si je comprends bien, je sélectionne les deux cellules puis => outils => macro => MaSubroutine
Oui c'est bien cela

Et si tu as besoin d'un paramètre à passer, il te suffit de mettre un petit Application.Inputbox dans ton code qui te permettra de demander le paramètre pendant l'exécution de la routine.

Bon courage

PS: L'aide en ligne de VBA 2010 concernant Selection

 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
161
Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…