Même s'il peut être utilisé pour une procédure placée dans le classeur lui même, Application.run est essentiellement utilisé pour exécuter un procédure située dans un autre classeur ouvert.
[VBA – Excel]
Sans paramètre :
Syntaxe :
Application.Run "Fichier.xls!'LaMacro'"
Exécute la procédure LaMacro située dans le fichier "Fichier.xls"
Ligne de commande placé dans une variable
1 2
| LigneDeCommande = "Fichier.xls! 'LaMacro'"
Application.Run LigneDeCommande |
Avec paramètre :
Syntaxe :
Application.Run "'Fichier.xls'!LaMacro", "LeParamètre"
Ligne de commande placé dans une variable
1 2
| LigneDeCommande = "Fichier.xls!'LaMacro """ & "LeParamètre" & """'"
Application.Run LigneDeCommande |
Ecrire la ligne de commande dans l'objet ThisWorkbook d'un classeur
1 2 3 4 5 6 7 8 9
| Dim NomClasseur$, LeParametre$, NoLigne As Long
NomClasseur = "UnClasseur.xls" 'Classeur ouvert <> ThisWorkbook.name
LeParametre = "La donnée"
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule 'A adapter
NoLigne = .CountOfLines
.InsertLines NoLigne + 1, "Private Sub Workbook_Open()"
.InsertLines NoLigne + 2, " Application.Run """ & "'" & NomClasseur & "'!NomDeLaMacro"", """ & LeParametre & """"
.InsertLines NoLigne + 3, "End sub"
End With |
Correction :
Le nom du fichier contenant la macro lancée par Application.run ne doit pas inclure le chemin
Partager