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

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
 
C

Compte Supprimé 979

Guest
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+
 

Dranreb

XLDnaute Barbatruc
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)
À+
 

Discussions similaires

Statistiques des forums

Discussions
312 498
Messages
2 088 996
Membres
104 001
dernier inscrit
dessinbecm