Ouverture Macro d'un autre classeur

Bonjour,

Je dois utiliser une macro(UnprotectionWbk d'un autre fichier excel.

Pour cela, j'utilise ce code:)

Sub Test()
Set ofso = CreateObject("Scripting.FileSystemObject")
Source = "C:\Outil RH\Test\"

       For Each File In ofso.GetFolder(Source).Files
        fichierRma = File.Name
        ActiveWorkbook.RunAutoMacros which:=xlAutoOpen
        st = "'" & fichierRma & "'!UnprotectionWbk"
        Application.Run st
        Workbooks.Open (Source & File.Name)

'Traitement

        ActiveWindow.Close
        Next
End Sub

Le problème arrive au niveau de la ligne ApplicationRun, une boite de dialogue indique que le fichierRma est introuvable.

Si j'enlève la ligne "ActiveWorkbook.RunAutoMacros which:=xlAutoOpen",le message devient:La méthode run de l'objet _Application a échoué

Merci de votre aide

Bonjour,

le problème vient du fait que tu n'obtiens que le nom du fichier, et non son chemin.

Rajoute ChDir en début de code, cela devrait le faire

Ensuite, il est inutile de l'ouvrir, celui-ci étant déjà ouvert par l'exécution du code

j'ai également rajouté la ligne supplémentaire, pour éviter de travailler sur le fichier source

Si le fichier source est dans le même répertoire, tu peux remplacer :

"C:\Outil RH\Test\" par ActiveWorkbook.Path & "\"

Sub Test()
Set ofso = CreateObject("Scripting.FileSystemObject")
Source = "C:\Outil RH\Test\"
ChDir "C:\Outil RH\Test\"
       For Each file In ofso.GetFolder(Source).Files
       If file.Name <> ActiveWorkbook.Name Then
        fichierRma = file.Name
        ActiveWorkbook.RunAutoMacros which:=xlAutoOpen
        st = "'" & fichierRma & "'!UnprotectionWbk"
        Application.Run st
'        Workbooks.Open (Source & file.Name)

'Traitement

        ActiveWindow.Close
        End If
        Next
End Sub
Rechercher des sujets similaires à "ouverture macro classeur"