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