Passage de l'argument à l'aide de l'instruction application.run en VBA5

cs_Beginner37 Messages postés 35 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 28 février 2011 - 12 août 2008 à 15:44
cs_Beginner37 Messages postés 35 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 28 février 2011 - 13 août 2008 à 12:06
Bonjour,

j'utilise l'instruction application.run pour faire passer des variables d'une macro à une autre. Mais j'ai un soucis. Voici, ce que je veux faire :
Sub Ouvrir_Excel()


'Declaration de l'objet
Dim obExcelApp As Object
Dim NomTable, Identifiant As String

NomTable= "Table1"
Identifiant= "Element1"
Set obExcelApp = CreateObject("Excel.Application")
obExcelApp.Visible = False
obExcelApp.Workbooks.Open ("C:\Autre_userform1")
obExcelApp.Application.Run "LaMacro", NomTable, Identifiant
End Sub


Ce module ne renvoie pas "Table1" ni  "Element1" vers la macro "LaMacro" d'un autre classeur.

Mais quand je fais ce qui est dessous, cela fonctionne :

obExcelApp.Application.Run "LaMacro", Feuil1.Range("A1"), Feuil1.Range("A2")
avec Feuil1.Range("A1")= "Table1" et  Feuil1.Range("A2")="Element1"

J'ai essayé d'autres variantes sans succès.
Comment peut-on écrire correctement : obExcelApp.Application.Run "LaMacro", arg1, arg2,... pour que les arguments (différentes variables) sont repris par l'autre macro en évitant de les copier dans des cellules ?
Merci de votre aide

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
12 août 2008 à 19:46
Salut,

je ne crois pas que ce soit un probleme d'appel mais plutot un probleme de reception de tes parametres. Montre nous comment tu receptionnes tes parametres
0
cs_Beginner37 Messages postés 35 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 28 février 2011
13 août 2008 à 12:06
Merci pour ton intérêt sur le sujet (bigfish).
voici la reception simple des paramètres :

Sub LaMacro(var1 As String, var2 As String)
Feuil1.Cells(1, 1) = var1
Feuil1.Cells(1, 2) = var2


'MsgBox "var1 " & var1 & "    " & " var2 " & var2


End Sub

Tu as raison, il doit y avoir une mauvaise déclaration de mes paramètres. (??)


cordialement


 
0
Rejoignez-nous