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 :
Exécute la procédure LaMacro située dans le fichier "Fichier.xls"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Run "Fichier.xls!'LaMacro'"
Ligne de commande placé dans une variable
Avec paramètre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2LigneDeCommande = "Fichier.xls! 'LaMacro'" Application.Run LigneDeCommande
Syntaxe :
Ligne de commande placé dans une variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Run "'Fichier.xls'!LaMacro", "LeParamètre"
Ecrire la ligne de commande dans l'objet ThisWorkbook d'un classeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LigneDeCommande = "Fichier.xls!'LaMacro """ & "LeParamètre" & """'" Application.Run LigneDeCommande
Correction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Le nom du fichier contenant la macro lancée par Application.run ne doit pas inclure le chemin
Partager