VBA Sauvegarde avec choix du folder

Bonjour a tous les honorables membres.

Le retour de la KichE apres un moment d'absence.

J'ai ecrit (en m'inspirant de divers exemples) cette macro pour faire une copie de sauvegarde d'un fichier Excel avec la date et l'heure et le choix du dossier cible.

Le seul truc c'est que mes copie se retrouvent nommees FileDialog(msoFileDialogFolderPicker) puis le nom.

Legerement enervant, j'ai pas trouve de solution pour me debarasser de ca.

Pouvez vous, s'il vous plait, me proposer des idees.

Sub BackupcopySelectFolder()
 'Macro by Theodore MORITA, 06 September 2012
    Dim copyName As String
    Dim MyDate
    MyDate = Now
    Dim DateString As String
    DateString = Format(MyDate, "yyyymmdd hh.mm")
    Dim diaFolder As FileDialog

        Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
        diaFolder.AllowMultiSelect = False
        diaFolder.Show

        Set ThisBook = ThisWorkbook

            copyName = diaFolder & "Back-up ICUDB01 table " & DateString & ".xls"

        With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
            ThisBook.SaveCopyAs copyName
            ActiveWorkbook.Save
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
    MsgBox "Backup Copy Saved!", vbExclamation, "Backup Macro by T.Morita"
End Sub

Bonjour,

A tester.

Cordialement

Sub EnregistrerSous()

    Dim NomFichier, x As String, w As String, NomDefaut As String

    x = ThisWorkbook.Name
    w = " " & Format(Date, "dd mm yyyy")

    NomDefaut = x & w

    NomFichier = Application.GetSaveAsFilename(NomDefaut, "Microsoft Excel (*.xls), *.xls")

    If NomFichier = False Then
        MsgBox "Enregistrement annulé."
    Else
        MsgBox NomFichier
    End If

End Sub

Ca marche pas...

Je fais le pas a pas mais ca ne save pas le fichier. Je comprend pas.

J'ai tweak un peu le nom du fichier et le format de la date. Et les MsgBox aussi.

Bonjour,

vois ce lien avec les différents échanges de courrier --> Enregistrer sous chemin précis. Cela devrait t'aider en changeant un peu le code.

Amicalement

Merci honorable Dan

Mais je suis en train de me plonger dans les pages de MSDN library a propos de la Application.GetSaveAsFilename Method‎, et je ne vois que des articles qui concernent Office 2007 ou superieur.

Je suis en 2003EN...

Quelles sont les "anciennes" methodes pour faire ca ?

Re,

Le fichier à sauvegarder existe déja ou c'est une création?

A+

Il existe deja.

La macro sera logee dans le Workbook en question.

Je veux pouvoir avoir le choix de la lier avec Workbook_Open ou encore a la demande avec bouton.

Sub Workbook_Open()

    Call BackUpCopySelectFolder

End Sub

Voila ou j'en suis:

Dim copyName, x As String, w As String, myFileName As String

On Error Resume Next
ChDir "G:\Strucfin\***\test\"
        x = ThisWorkbook.Name
        w = "Backup " & Format(Now, "yyyymmdd hh mm ")

        myFileName = w & x

            copyName = myFileName
            copyName = Application.GetSaveAsFilename(myFileName, fileFilter:="Excel Files (*.xls), *.xls")

            If copyName <> False Then ThisWorkbook.SaveAs copyName
                    MsgBox "Backup Copy Saved !"
            If copyName = False Then
                    MsgBox "Backup Copy Cancelled."
            End If
End Sub

mais ca marche pas bien

je comprend pas ce qui cloche

Re,

Si tu utilises ton dernier code, remplace

copyName = Application.GetSaveAsFilename(myFileName, fileFilter:="Excel Files (*.xls), *.xls")

par

copyName = Application.GetSaveAsFilename(myFileName) 

Amicalement

Bonjour a tous

J'ai fait les changements suggeres: ca marche !

...sauf que: on s'est eloigne de ce que je cherche a faire

> > > faire une copie de sauvegarde du fichier que l'utilisateur vient d'ouvrir (au cas ou il casse tout) dans un dossier au choix

Avec la methode Application.GetSaveAsFilename je me retrouve a travailler sur la copie de sauvegarde une fois la macro executee

Donc ca ne va pas. C'est pourquoi j'etait parti sur la methode Application.FileDialog(msoFileDialogFolderPicker), mais j'avais juste un soucis de nom de fichier.

Merci pour vos eclairages !

Ca y es ! Ca marche !

En fait il fallait juste corriger le copyname...

Sub BackupcopySelectFolder()
 'Macro by Theodore MORITA, 11 September 2012

    Dim copyName As String
    Dim MyDate
    MyDate = Now
    Dim DateString As String
    DateString = Format(MyDate, "yyyymmdd hhmm ")
    Dim diaFolder As FileDialog

        Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
        diaFolder.AllowMultiSelect = False
        diaFolder.Show

        Set ThisBook = ThisWorkbook

            copyName = "Back-up ICUDB01 table " & DateString & ".xls"

        With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
            ThisBook.SaveCopyAs copyName
            ActiveWorkbook.Save
        .DisplayAlerts = True
        .ScreenUpdating = True

        End With
    MsgBox "Backup Copy Saved!", vbExclamation, "Backup Macro by T.Morita"
End Sub

Merci a tous !

Rechercher des sujets similaires à "vba sauvegarde choix folder"