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 :

rech commande pour déplacer des fichiers dans un liste vers un autre dossier [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut rech commande pour déplacer des fichiers dans un liste vers un autre dossier
    bonjour
    je suis sous excel 2013
    je recherche la commande(macro) pour déplacer des fichiers inscrit dans une liste d'un fichier excel vers un autre dossier
    ayant cherché cette commande, je n'ai rien trouvé,et étant débutant en macro je n'y connais rien
    donc j'ai besoin d'aide
    voici ce que je voudrais faire
    en colonne A, j'ai une liste des noms d'images (exp: 12542.jpg, 25654.jpg ect..), et dans le dossier ‪C:\Users\tc\Desktop\0 , des images
    je voudrais que les images qui sont pressentes dans la liste de la colonnes A et qui sont aussi dans le dossier ‪C:\Users\tc\Desktop\0, soit copier ou déplacer dans le dossier ‪C:\Users\tc\Desktop\phototransfert

    ou si cela n'est pas possible avez vous l'information sur un logiciel qui ferait cette fonction

    je vous remercie par avance de l'aide que vous pouvez m'apporter
    à bientôt thierry

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Regarde la fonction Name. Elle renomme et / ou déplace le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name oldpathname As newpathname
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE" 
    Name OldName As NewName ' Move and rename file.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    bonjour
    merci de m'avoir mis sur la voie

    déjà le transfert est bon
    j'ai fais ceci
    pour avoir juste le déplacement sans changer le nom, j'ai mis en A et B les mêmes nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
     
    Dim AncienNom As String, NouveauNom As String
    AncienNom = "C:\Users\tc\Desktop\0\" & Range("A1")
    NouveauNom = "C:\Users\tc\Desktop\phototransfert\" & Range("B1")
    Name AncienNom As NouveauNom
     
     
    End Sub
    maintenant il me reste à trouver la fonction que si le nom du fichier n'est pas dans le dossier
    de passer à la ligne suivante
    et de rechercher dans la colonne et non la cellule

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    & Columns("A")
    & Columns("A:A")
    & Range("A:A")
    mais j'ai le message erreur 13

    à bientôt thierry

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    pas trop compris ce que tu as voulu faire. Pour tester si le fichier existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim AncienNom As String, NouveauNom As String
    If Dir("C:\Users\tc\Desktop\0\" & Range("A1")) <> "" Then
        AncienNom = "C:\Users\tc\Desktop\0\" & Range("A1")
        NouveauNom = "C:\Users\tc\Desktop\phototransfert\" & Range("B1")
        Name AncienNom As NouveauNom
    End If
    Pour "Name", je ne suis pas sûr à 100% mais le crois que spécifier le chemin est suffisant si tu ne modifies pas le nom. A vérifier à l'occasion.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    re bonjour
    en faite voici ce que je veux faire
    j'ai une liste de nom d'images qui sont dans la colonne A du fichier excel (+- 50000 noms)

    dans le dossier C:\Users\tc\Desktop\0\ j'ai des images +- 70000

    et je souhaite rechercher via une macro, si le nom d'une image est dans la liste de la colonne est aussi dans le dossier C:\Users\tc\Desktop\0\, elle soit copier vers le dossier C:\Users\tc\Desktop\phototransfert\

    et si le nom d'une image n'est pas dans la liste, que la macro recherche le nom suivant dans la colonne
    j’espère que je me suis mieux expliqué sur ce que je veux faire
    à bientôt
    cordialement Thierry

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Es-tu vraiment sûr de vouloir faire cela avec une macro ? Parce que, si tu veux assister au déroulement, tu risques de devoir prendre quelques tasses de café en chemin.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    bonjour
    oui je n'ai pas le choix car je n'ai trouvé aucun autre moyen de faire ce trie

    s'il y a un autre moyen je suis preneur

    cordialement thierry

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Moi, je te dirais de télécharger Visual Studio Community (gratuit) sur le site de Microsoft et de le faire en VB.NET (ou même en C#, si cela te tente). En plus de profiter d'un exécutable compilé, j'ai l'impression que cela prendrait pas mal moins de code.

    Tu pourrais même (très) facilement utiliser ta liste dans ton classeur comme source de données. N'importe comment, récupérer la liste d'Excel, et récupérer la liste d'images, dans une application VB.net seront encore plus rapides que d'itérer les 5 000 cellules d'une colonnes, même en utilisant une variable-tableau dans VBA. Les capacités de VB.net pour traiter des tableaux, ou des listes, sont de beaucoup supérieures à celles de VBA.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    bonsoir
    j'étais plutôt sur une macro ce qui semble le plus proche de mes compétences, quasi nul
    car je n'ai aucune connaissance en Visual Basic.Net ni en C#
    même si je dois faire les traitements par tranche pour réduire le temps de traitement cela ne me dérange pas
    car cela ira plus vite que de le faire manuellement
    cordialement thierry

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Change le nom des dossiers Source et Desti.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Transfert()
        Dim C As Range, Source As String, Desti As String
        Source = "D:\Users\Daniel\Documents\Donnees\Daniel\Photos\2015-04\"
        Desti = "D:\Users\Daniel\Documents\Donnees\Daniel\Photos\2015-07\"
        For Each C In Range("A1", Cells(Rows.Count, 1).End(xlUp))
            If Dir(Source & C.Value) <> "" Then
                Name Source & C.Value As Desti & C.Value
            End If
        Next C
    End Sub
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour Daniel
    un énorme merci cela fonctionne à merveille
    sur le test 82.000 références, lancement de la macro dans le dossier des images, elle a bien trouvé et transféré les images qu'il manquait
    et a bien zappé les références qui n'étaient pas dans le dossier
    c'est rapide traitement de la macro moins de 30s avec le déplacement des images

    Encore, merci, c'est super-sympatrique de m'avoir aidé

    à bientôt et très bonne journée
    Cordialement thierry

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

Discussions similaires

  1. [LibreOffice][Tableur] Macro pour déplacer des fichiers
    Par IRAD dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 01/10/2014, 12h20
  2. Réponses: 1
    Dernier message: 19/05/2014, 08h32
  3. Création d'un .bat pour déplacer des fichiers
    Par harmonia1981 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 31/10/2009, 12h45
  4. utiliser ls et xargs pour déplacer des fichiers
    Par walrus_55 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 06/04/2007, 10h22
  5. Problème pour déplacer des fichiers
    Par kurul1 dans le forum C++Builder
    Réponses: 16
    Dernier message: 07/03/2007, 16h25

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