Ouvrir et fermer des classeurs en VBA

Bonjour,

J'ai créé un macro pour traiter un fichier, sur la fin, le fichier est sauvegardé sous un nouveau nom et je voudrais le fermer et rouvrir la version précédente. Pour ne pas fermer Excel et garder accès à la macro, j'ouvre d'abord la version précédente, puis j'essaie de fermer l'autre, mais ça ne fonctionne pas.

    Dim sFile As String
    sPath = ThisWorkbook.Path & Application.PathSeparator
    sFile = Worksheets("Feuil1").Cells(1, 12).Text & " - Nouveau fichier"

    Range("A1").Select
    ActiveWorkbook.Protect Password:="lalalala", Structure:=True, Windows:=False
    ActiveWorkbook.SaveAs Filename:=sPath & sFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    Workbooks.Open Filename:="C:\******\Fichier original.xlsm"

    Workbooks(sFile & ".xlsm").Activate
    ActiveWorkbook.Close True

On dirait que l'ouverture du fichier bloque la fin de la macro...

Vous pouvez m'aider ?

Bonjour,

Cela ne peut pas fonctionner car votre macro continue de s'exécuter dans votre fichier renommé. Il faut passer par la création d'une nouvelle instance visible d'Excel et fermeture de l'ancienne.

        Set xl = CreateObject("Excel.Application"): xl.Visible = True
        xl.Workbooks.Open Filename:="C:\******\Fichier original.xlsm"
        ThisWorkbook.Application.Quit

Bonjour,

Une proposition !?

Cdlt.

Public Sub XXX()
Dim sPath As String, sFile As String
    With ThisWorkbook
        sPath = ThisWorkbook.Path & Application.PathSeparator
        .Protect Password:="lalalala", Structure:=True, Windows:=False
        sFile = .Worksheets("Feuil1").Cells(1, 12).Text & " - Nouveau fichier.xlsm"
        .SaveCopyAs Filename:=sPath & sFile
        .Unprotect Password:="lalalala"
    End With
End Sub

Merci pour vos réponses, la proposition de Thev fonctionne !

Rechercher des sujets similaires à "ouvrir fermer classeurs vba"