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