SaveAs xlsm vers xlsx puis suppression xlsm

Bonjour au forum,

Je souhaiterais, à partir du fichier d'origine (fichier1.xlsm) et via une macro, effectuer une sauvegarde dans un emplacement différent en conservant le nom mais au format .xlsx (fichier1.xlsx, donc sans les macros).

J'aimerais ensuite, toujours via cette même macro, supprimer le fichier d'origine de son répertoire (donc supprimer le fichier1.xlsm après l'avoir sauvegardé au format .xlsx).

J'ai testé plusieurs choses, dont ce code pour ma dernière tentative, mais

Merci d'avance pour votre aide !

Sub Save_validation()

Dim xFullName As String

    ExtensionM = ".xlsm"
    Extension = ".xlsx"
    Chemin_validation = "O:\Validation_OK\"
    Nom_validation = Sheets("Panel").Range("C10") & "_" & Sheets("Panel").Range("C11") & " du " & Format(Date, "dd-mmmm-yyyy") & " à " & Format(Time, "hh-mm") & Extension

Application.DisplayAlerts = False

With ActiveWorkbook
    With Sheets("Panel")
        .Unprotect Password:="mdp"
            For Each c In .UsedRange
                c.MergeArea.Locked = True
            Next c
        .Protect Password:="mdp"
    End With
        .Save 'enregistre le classeur d'origine
        Nom = .FullName 'récupère le nom complet du classeur origine
        .SaveAs Filename:=Chemin_validation & Nom_validation, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'Sauvegarde du fichier sous son nouveau format (.xlsx). Le classeur d'origine est fermé.
        Workbooks.Open Nom 'réouverture du classeur d'origine (origine .xlsm)
        .Close 'fermeture de la copie sans les macros
End With

Application.DisplayAlerts = True

xFullName = Application.ActiveWorkbook.FullName
ActiveWorkbook.Saved = True
Application.ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill xFullName 'suppression fichier origine .xlsm
Application.ActiveWorkbook.Close False

End Sub

Bonjour,

J'aimerais ensuite, toujours via cette même macro, supprimer le fichier d'origine de son répertoire (donc supprimer le fichier1.xlsm après l'avoir sauvegardé au format .xlsx).

ce n'est pas possible de supprimer un fichier qui est ouvert et exécute une macro,

il faudrait mettre la macro dans le classeur de macro Perso.

Bonjour i20100,

Merci pour ta réponse.

Serait-il possible alors, étant donné que le fichier d'origine porte le même nom que celui de destination, de récupérer ce nom et de supprimer le fichier d'origine via le fichier nouvellement enregistrer (ce qui impliquerait que cette sauvegarde se ferait en .xlsm) ?

Ce n'est pas très facile à expliquer, je m'en excuse...

Mon objectif est que depuis ce fichier d'origine, je puisse via la macro faire les modifications nécessaires du fichier, enregistrer une copie de ce fichier dans un autre emplacement (et que ce fichier ne soit plus du tout modifiable, ce pourquoi j'aimerais l'avoir en .xlsx, ou alors en .xlsm mais avec l'impossibilité d'utiliser les macros), puis supprimer le fichier d'origine (qui joue le rôle d'un fichier temporaire en quelque sorte).

Est-ce envisageable... ?

re,

à tester,

nota/ le fichier doit être fermer au moment de sa suppression

Chemin_validation = "O:\Validation_OK\"
Nom_fichier = Sheets("Panel").Range("C10") & "_" & Sheets("Panel").Range("C11") & " du " & Format(Date, "dd-mmmm-yyyy") & " à " & Format(Time, "hh-mm") &".xlsm"
Kill Chemin_validation &  Nom_fichier

Re i20100,

Désolé pour la réponse tardive.

Merci pour la proposition, je vais creuser de ce coté là, je pense pouvoir m'en sortir

Très bonne journée

Rechercher des sujets similaires à "saveas xlsm xlsx puis suppression"