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
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