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 éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    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

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

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 521
    Par défaut
    Bonjour,
    Je pense que la méthode MoveFile de l'objet Scripting.FileSystemObject peut faire cela. Mais est-on gagnant ?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    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

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

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 521
    Par défaut
    Re,
    Testez aussi avec la méthode MoveFolder pour voir. On ne sait jamais...

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

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 521
    Par défaut
    Bonsoir,
    Explication sur les ArrayList et pas que...

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

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 210
    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