Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Appeler une macro d'un autre classeur

Lentillelocale

XLDnaute Nouveau
Pour pouvoir lancer une macro d'un autre classeur, j'utilise la fonction Application.Run NomFichier!Modulex.NomMacro

Cela fonctionne si le nom du fichier NomFichier est par exemple Essai3.xls

Mais lorsque le nom du fichier contenant la macro appelée contient des espaces (Avec blanc Essai3.xls par exemple), on tombe en erreur d'exécution '1004' Impossible de trouver la macro 'Avec blanc Essai3.xls!Module1.Traitement'

Le code est le suivant :

Private Sub CommandButton1_Click()
Range("E6") = Now
Range("E7") = Now

Sheets("Lanceur").Range("G12:H14").ClearContents

Ligne = 12
Do While Range("E" & Ligne) <> ""
Range("G" & Ligne) = Now
' ouvrir le fichier
SOS_Fichier = ActiveWorkbook.Name
MonRepertoireFichier = Range("E" & Ligne)
Monfichier = Dir(Range("E" & Ligne))
Call OuvrirFichier(MonRepertoireFichier)
' ici on va exécuter le code lié au bouton Test dans le fichier que l'on vient d'ouvrir
Application.Run Monfichier & "!Module1.Traitement"
Workbooks(SOS_Fichier).Activate


' Fermer le fichier en le sauvegardant
SOS_Fichier = ActiveWorkbook.Name
Call FermerFichier(MonRepertoireFichier, Monfichier)
Workbooks(SOS_Fichier).Activate

Range("H" & Ligne) = Now

Ligne = Ligne + 1
Loop

Range("E7") = Now

End Sub
------------
Et si je remplace la ligne Application.Run Monfichier & "!Module1.Traitement"
par Application.Run "[" & Monfichier & "]!Module1.Traitement" pour indiquer que le nom du fichier est dans les crochets, j'obtiens un autre message d'erreur '1004' Un document nommé "Avec blanc Essai3.xls' est déjà ouvert.Vous ne pouvez pas ouvrir deux documents portant le même nom, etc...

Quelqu'un a-t-il une idée ?
Quelle est la syntaxe correcte de Application.run lorsque le nom du fichier comporte des espaces ?

Merci pour votre aide
 

Pièces jointes

  • Lanceur.zip
    48.2 KB · Affichages: 41
  • Lanceur.zip
    48.2 KB · Affichages: 46
  • Lanceur.zip
    48.2 KB · Affichages: 45

Lentillelocale

XLDnaute Nouveau
Re : Appeler une macro d'un autre classeur

En fait :
Il faut encadrer le nom du fichier par des ' et non par des crochets....
 

Pièces jointes

  • Lanceur.zip
    48.5 KB · Affichages: 74
  • Lanceur.zip
    48.5 KB · Affichages: 73
  • Lanceur.zip
    48.5 KB · Affichages: 73

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…