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 :

Optimisation copie de fichiers d'un répertoire vers un autre [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 270
    Points : 483
    Points
    483
    Par défaut Optimisation copie de fichiers d'un répertoire vers un autre
    Bonjour,

    j'ai une macro qui sauve tous les fichiers d'un répertoire dans le répertoire de même nom sur un autre disque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Kill ThisWorkbook.Path & "\PHOTOS\*.*"
     
    phto = Dir(pathServeur & "\PHOTOS\" & "*.*")
        Do While Len(phto) > 0
            phtoPC = ThisWorkbook.Path & "\PHOTOS\" & phto
            phtoServ = pathServeur & "\PHOTOS\" & phto
            FileCopy phtoServ, phtoPC
            phto = Dir()
        Loop
    Peut-on copier tous les fichiers sans passer par une boucle, comme le fait "Kill" pour supprimer tous les fichiers
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 463
    Points : 807
    Points
    807
    Par défaut
    Bonjour,
    Je pense que la méthode MoveFile de l'objet Scripting.FileSystemObject peut faire cela. Mais est-on gagnant ?
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 270
    Points : 483
    Points
    483
    Par défaut
    Bonjour

    j'ai testé, on ne gagne rien en temps d'exécution et finalement pour 600 fichiers ça prend 3 secondes, je ne cherche pas plus loin

    Merci
    Il ne savait pas que c'était impossible, donc il l' a fait...

  4. #4
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 463
    Points : 807
    Points
    807
    Par défaut
    Re,
    Testez aussi avec la méthode MoveFolder pour voir. On ne sait jamais...
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  5. #5
    Membre éclairé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 463
    Points : 807
    Points
    807
    Par défaut
    Bonsoir,
    Explication sur les ArrayList et pas que...
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  6. #6
    Membre averti
    Homme Profil pro
    CIP
    Inscrit en
    Avril 2024
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 192
    Points : 328
    Points
    328
    Par défaut re
    Bonsoir
    la méthode FSO copy avec les propriété du dossier original
    ca peut avoir son importance
    petie fonction avec la possibilité de supprimer l'original true en 3eme argument
    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
    Sub test()
        Dim N1 As tring, N2 As String
        'pour un fichier
        'n1 =c:\blablabla\monfichier.txt
        'n2 =c:\trucbidule\machin\monfichier.txt
     
        'pour un dossier
        N1 = "H:\icon"
        N2 = Environ("userprofile") & "\desktop\icon"
        FolderFileCopy N1, N2
    End Sub
    Function FolderFileCopy(N1, N2, Optional del As Boolean = False)
        If GetAttr(N1) = 16 Then
            Set oFsO = CreateObject("Scripting.FileSystemObject")
            oFsO.CopyFolder N1, N2, True
            If del Then oFsO.deletefolder (N1) 'si on veut supprimer l'original
        Else
            FileCopy N1, N2
            If del Then Kill N1
        End If
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/07/2014, 15h36
  2. [Bonne pratique] copy des fichiers stable du trunk vers le tags ?
    Par weed dans le forum Subversion
    Réponses: 8
    Dernier message: 25/05/2009, 12h49
  3. Copie de fichiers d'un PC vers un Pocket PC
    Par poufouille dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/08/2008, 11h05
  4. copie de fichiers de plusieurs répertoires vers un seul
    Par cell dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/10/2007, 09h39
  5. [VB.net] copie de fichier d'un serveur vers un poste local
    Par junoreactor dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/11/2006, 20h54

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