Lancer la macro d'un classeur à partir d'un autre classeur en passant une variable

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

Polo34

XLDnaute Junior
Bonjour le Forum, bonjour à tous,
Je souhaite à partir d'un classeur 1, lancer une macro se situant dans le module d'un classeur 2 et ceci en lui transférant une variable "a" définie dans le classeur 1.

exemple:

Classeur 1:
sub macro1()
a = CommandButton1.Caption
Application.Run "classeur2.xls!btnclic(a)"
End Sub

Classeur 2:
sub btnclic(x)
....
end sub

Je ne sais pas si cela est possible car j'obtient un message d'erreur "erreur d'éxécution 1004".

Il est possible je pense de passer par la copie de "a" dans une cellule du classeur 1 et la récupérer dans la macro du classeur 2.

Mais y aurait il une autre méthode ?

Merci d'avance pour vos réponses.

Polo34
 
Re : Lancer la macro d'un classeur à partir d'un autre classeur en passant une variab

Bonjour Polo34,

En passant par l'écriture de la valeur dans un fichier ".ini"
Recherche avancée sur ce forum avec mon pseudo et le terme "fichier INI"

A+
 
Re : Lancer la macro d'un classeur à partir d'un autre classeur en passant une variab

Bons ...jour.
Devrait faire l'affaire:
VB:
Application.Run "classeur2.xls!btnclic", a
Méthode Run telle qu'elle s'applique à l'objet Application.

Cette méthode exécute une macro ou appelle une fonction. Elle peut être utilisée pour exécuter une macro écrite en Visual Basic ou dans le langage de macro de Microsoft Excel ou pour exécuter une fonction dans une DLL ou une XLL.

expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)

expression Obligatoire. Expression qui renvoie un objet Application.

Macro Argument de type Variant facultatif. Macro à exécuter. Il peut s'agir d'une chaîne de caractères contenant le nom de la macro, d'un objet Range indiquant l'endroit où se trouve la fonction ou encore d'un identificateur de Registre pour une fonction DLL (XLL) inscrite dans le Registre. En cas d'utilisation d'une chaîne de caractères, celle-ci sera évaluée dans le contexte de la feuille active.

Arg1-Arg30 Argument de type Variant facultatif. Arguments à transmettre à la fonction.
Mais de grâce, typez vos valiables et paramètres explicitement:
VB:
Sub btnclic(ByVal x As String)
À+
 
- 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

Réponses
9
Affichages
586
Retour