Help excel vba

SAngarmatha Messages postés 8 Statut Membre -  
SAngarmatha Messages postés 8 Statut Membre -
Bonjour,

Dans un fichier excel, j'ai une liste de noms "partiel" de fichiers sous forme "4000005240123" le reste est variable, j'aimerai récupérer le nom complet de tous les fichiers contenant les noms partiels et présent dans un répertoire c:\test. Ensuite sur la base du nom complet faire une copie de tous les fichiers trouvés dans un autre répertoire.

nom partiel = 4000005240123
recherche nom complet dans c:\temp = jhchhb 4000005240123 echbejbh.pdf
Copy nom complet vers c:\new

Si qq peut m'aider un peu car je n'arrive pas à adapter ce que j'ai pu trouver faute de compétences. Soit cela recherche 1 seul de mes noms soit j'extraie la totalité du répertoire.

J'ai 800 noms partiels à extraire, avec 2 ou 3 occurrences, mais dans 80000 fichiers....
Merci d'avance

7 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Peux-tu être plus pécis ?

    Dans un fichier excel, j'ai une liste de noms "partiel" de fichiers ...

    Dans quel onglet, sous quel forme ? dans un tableau, une colonne, une ligne ?

    Peux tu mettre un exemple de ton fichier, en enlevant les données confidentielles le cas échéant, sur cjoint.com et mettre ici le lien pour récupérer ton fichier.

    Merci

    ;0)
    0
  2. SAngarmatha Messages postés 8 Statut Membre
     
    Merci de ta rapidité, il y a de ça et bien mieux que ce que j'ai pu obtenir mais....:
    - dans un contexte normal de départ, seule la colonne A contient des données (puisque je n'ai pas les noms complets). Dans ce cas j'ai "traitement terminé" mais aucun noms de "récupéré" ni aucun fichier copié.
    - Si je laisse les noms colonnes 2 et 3 mais cela être vide, cela copie bien mais s'arrête si le fichier est absent
    Merci de ton aide
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Peux-tu me confirmer le répertoire où il faut rechercher et le répertoire où il faut copier ?

    Merci

    Edit: J'ai fait une boullette dans l'instruction InStr()

    Il faut remplacer :
    If InStr(1, str, fichier.Name) <> 0 Then
                derlig = ws.Range("B" & Rows.Count).End(xlUp).Row + 1
                ws.Range("B" & derlig).Value = ExtractFileName(fichier.Path)
            End If


    par

    If InStr(1, fichier.Name, str) <> 0 Then
                derlig = ws.Range("B" & Rows.Count).End(xlUp).Row + 1
                ws.Range("B" & derlig).Value = ExtractFileName(fichier.Path)
            End If


    Je suis désolé.

    «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
    Nicolas Boileau
    0
  5. SAngarmatha Messages postés 8 Statut Membre
     
    J'ai pris pour mes brouillons:
    C:\temp = origine
    C:\tests = destination
    Merci
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      As-tu fait la modif comme indiquée ci dessus ?
      0
  6. SAngarmatha Messages postés 8 Statut Membre
     
    Bravo!!! C'est exactement ça, en bien plus rapide et juste que moi. Je testerai demain sur un grand nombre de fichier et te tiendrai au courant.
    Un grand merci
    0