IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer une copie de sauvegarde de fichiers


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut Créer une copie de sauvegarde de fichiers
    Bonjour,

    Je souhaiterais créer une macro qui enregistre TOUS les fichiers situés sous le dossier P:\ENG\EXT (fichiers, dossiers et sous-dossiers de ce répertoire) et les copie dans un dossier racine que je choisis via "parcourir". Il faudrait de plus que lorsque je lance cette procédure les anciens fichiers soient écrasés.

    Des propositions ? Merci par avance.

    Cdlt.
    Jérôme

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Une proposition utilise les "FilesDialogs"
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Merci.
    Cdlt.

  4. #4
    Membre régulier
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2016
    Messages : 70
    Points : 85
    Points
    85
    Par défaut Créer une copie de sauvegarde de fichiers
    Salut !
    tu peux tester ce bout de code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    Option Explicit
    Option Private Module
    Private fso As Object ' Ou Activer la Référence Microsoft Scripting Runtime pour pouvoir Définir fso en tant que Scripting.FileSystemObject
    Private Const defaultSourcePath As String = "P:\ENG\EXP" 'Chemin de ton Dossier Source
    Public Sub SaveFolderWhithFullContent()
        On Error GoTo ErrorFolder
        Dim newFolder As String, newPathDestination As String
        Dim oShell As Object, oFolder As Object
     
        Set oShell = CreateObject("Shell.Application")
        Set oFolder = oShell.BrowseForFolder(&H0&, "Select Your Destination Folder", &H1&)
     
        On Error Resume Next
     
        If oFolder Is Nothing Then
            newPathDestination = ""
            Exit Sub
        Else
            newPathDestination = oFolder.parentFolder.ParseName(oFolder.Title).Path & ""
            newPathDestination = newPathDestination _
                        & Application.PathSeparator _
                        & "Sauvegarde Du" _
                        & Application.WorksheetFunction.Proper(VBA.Format(VBA.Now(), "-dd mmm yyyy"))
        End If
     
        Set fso = VBA.CreateObject("Scripting.FileSystemObject")
        'Vérifie et crée un nouveau dossier à chaque nouvelle sauvegarde. Cela écrasera automatiquement les Anciens Fichiers _
        si la sauvegarde s'est fait dans la même journée */
        If Not fso.FolderExists(newPathDestination) Then fso.CreateFolder newPathDestination
     
        'Copy le contenu de le dossier Source vers le dossier de Sauvegarde Choisi
        fso.CopyFolder defaultSourcePath, newPathDestination
     
        'Libérer les ressources de la Mémoire
        If Not fso Is Nothing Then Set fso = Nothing
        If Not oShell Is Nothing Then Set oShell = Nothing
        If Not oFolder Is Nothing Then Set oFolder = Nothing
        On Error GoTo 0
        Exit Sub
    ErrorFolder:
        'Libérer les ressources de la Mémoire
        If Not fso Is Nothing Then Set fso = Nothing
        If Not oShell Is Nothing Then Set oShell = Nothing
        If Not oFolder Is Nothing Then Set oFolder = Nothing
     
        MsgBox "Alert ! (" & Err.Description & ")", 64 + 0, "Error Exception->" & Err.Number
    End Sub
    Cordialement.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Désolé pour le silence radio. De nombreuses urgences à traiter avant les vacances. Un grand merci pour ce "bout de code". J'y regarde dès que possible....

    Cdlt.
    Jérôme.

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par licpegpon Voir le message
    Il faudrait de plus que lorsque je lance cette procédure les anciens fichiers soient écrasés.
    Le plus simple est de commencer la macro en supprimant tous les fichiers dans le répertoire de destination avant de lancer la copie.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Bonjour Menhir,
    Comment cela se traduit-il dans le code ?

    Bonjour TSA FACK-M,
    Où dois-je mettre ce code ? Dans un module particulier ? Dans thisworkbook ? ...

    Cdlt.
    Jérôme

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par licpegpon Voir le message
    Comment cela se traduit il dans le code ?
    Avec l'instruction Kill : https://docs.microsoft.com/fr-fr/off...kill-statement

    Ou le méthode Delete de l'objet File du FileSystem.
    Lire ça :
    https://docs.microsoft.com/fr-fr/off...r-applications
    https://docs.microsoft.com/fr-fr/off...lp/file-object
    https://docs.microsoft.com/fr-fr/off...mobject-object
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Membre régulier
    Homme Profil pro
    Logisticien
    Inscrit en
    Avril 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2016
    Messages : 70
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par licpegpon Voir le message
    Bonjour Menhir,
    Comment cela se traduit-il dans le code ?

    Bonjour TSA FACK-M,
    Où dois-je mettre ce code ? Dans un module particulier ? Dans thisworkbook ? ...

    Cdlt.
    Jérôme
    Bonjour.

    Tu peux placer le code dans un Module Standard puis insérer un bouton dans ta feuille et
    faire clique droit dessus puis Affecter une macro. Dans la petite fenêtre qui s'ouvre, copis
    et colle la méthode SaveFolderWhithFullContent et ok, ainsi la fenêtre Enregistrer-Sous
    s'ouvrira chaque fois que tu cliqueras sur la bouton.

    Cordialement;

Discussions similaires

  1. [XL-2010] Créer une copie d'un fichier sur un serveur vers mon HDD
    Par wkrystof1 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2019, 15h30
  2. Réponses: 10
    Dernier message: 03/02/2011, 19h28
  3. [VB6]créer une copie d'une ligne d'une table
    Par h82kev dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/02/2006, 16h08
  4. Créer une copies de sauvegarde automatiquement
    Par alexander dans le forum Administration
    Réponses: 5
    Dernier message: 19/03/2005, 23h03
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo