Macro Sauvegarde Fichier

Bonjour,

Je cherche un moyen de créer un backup de mon fichier via une macro. A terme cette dernière sera intégrée à d'autres procédures c'est pourquoi je souhaite effectuer cette manipulation avec VBA.

Lorsque la macro se déclenche il faudrait que l'utilisateur puisse choisir le dossier de destination et le renommer le fichier. Toutefois une fois le backup créé, l'utilisateur devra rester sur le fichier d'origine (et non le backup !).

J'ai testé plusieurs codes mais à chaque fois j'arrivais sur mon fichier backup...

Voici ma programmation :

    'On choisi le dossier de destination
    Set Rep = Application.FileDialog(msoFileDialogSaveAs)
    With Application.FileDialog(msoFileDialogSaveAs)
    'On propose un nom de fichier
    .InitialFileName = "Suivi des commande année 2019"
    'On souhaite enregistrer sous XLSM
    .FilterIndex = 2
    Rep.Show
    Rep.Execute
    End With
    

Merci d'avance pour votre aide

Baptiste

Bonjour Baptiste,

voici un exemple,

Sub CopieDeSauvegarde()
'.xlsm = 5
'.xls = 4
wk = ActiveWorkbook.Name
LeNom = Left(wk, Len(wk) - 5) & " (copie de sauvegarde)" & ".xlsm"
ActiveWorkbook.SaveCopyAs "C:\Users\isabelle\Documents\SAUVEGARDE\" & LeNom  'à adapter
End Sub

Bonjour i20100,

Est-il possible de demander le chemin de destination à l'utilisateur qui souhaite faire un backup au lieu de l'avoir dans la macro ?

"C:\Users\isabelle\Documents\SAUVEGARDE\"

Merci pour ton retour,

Baptiste

re,

à tester,

Sub CopieDeSauvegarde()
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String, NomComplet As String

'.xlsm = 5
'.xls = 4
wk = ActiveWorkbook.Name
LeNom = Left(wk, Len(wk) - 5) & " (copie de sauvegarde)" & ".xlsm"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path

ActiveWorkbook.SaveCopyAs Chemin & "\" &  LeNom  'à adapter
End Sub

Re

Ça fonctionne très bien !

Une question, pour que l'utilisateur ne soit pas perdu lors l'ouverture de la boite de dialogue permettant de choisir le dossier de destination : faut-il mieux mettre une msgbox d'info avant ou est-il faisable de faire un userform personnalisé comprenant le choix du dossier de destination ?

Merci d'avance pour ton aide,

Baptiste

Re

Ça fonctionne très bien !

Une question, pour que l'utilisateur ne soit pas perdu lors l'ouverture de la boite de dialogue permettant de choisir le dossier de destination : faut-il mieux mettre une msgbox d'info avant ou est-il faisable de faire un userform personnalisé comprenant le choix du dossier de destination ?

Merci d'avance pour ton aide,

Baptiste

re,

voici un autre exemple,

Sub CopieDeSauvegarde()
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String, NomComplet As String

'.xlsm = 5
'.xls = 4
wk = ActiveWorkbook.Name
LeNom = Left(wk, Len(wk) - 5) & " (copie de sauvegarde)" & ".xlsm"

Set objShell = CreateObject("Shell.Application")
recommence:
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
If Chemin = "" Then
    MsgBox "Vous devez choisir un répertoire"
    GoTo recommence
End If
ActiveWorkbook.SaveCopyAs Chemin & "\" & LeNom   'à adapter
End Sub

Re,

C'est exactement ce que je cherchais à avoir, je vais à présent adapter les messages.

Cordialement,

Baptiste

Rechercher des sujets similaires à "macro sauvegarde fichier"