Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Copier un fichiers txt qui ont le même nom de plusieurs sous-dossiers vers un dossier

hamzaelhathout

XLDnaute Nouveau
Bonjour,

J'ai un dossier qui contiens plusieurs sous-dossier pour chaque journée qui ont pour nom "aaaa-mm-jj".
Dans ces sous-dossier, il y a un rapport au format txt qui a toujours le même nom "XXXXX.txt"

Je voudrais créer une macro qui aille chercher ce fichier txt dans chaque sous dossier et me le copie avec comme nom, celui du sous dossier dans lequel il se trouve (donc aaaa-mm-jj.txt) vers un dossier "destination".

J'ai cherché dans le forum mais je n'ai pas trouvé exactement ça.

Merci d'avance.
 
Solution
Super merci.

J'ai adapté pour le nom du fichier exact.

VB:
Option Explicit

Sub Test()
    Call FichiersSousRépertoires("C:\Users\Youssef\Documents\fansub\testmacro\")
End Sub

'---------------------------------------------
'Fichiers des sous-répertoires d'un répertoire
'---------------------------------------------
Sub FichiersSousRépertoires(NomRépertoire As String)
    Dim oFSO As Object
    Dim oDir As Object
    Dim oSubDir As Object
    Dim oFile As Object

    'File System Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    'Directory Object
    Set oDir = oFSO.GetFolder(NomRépertoire)

    'Parcours des sous-répertoires du répertoire
    For Each oSubDir In oDir.SubFolders
        'Parcours des fichiers du...

patricktoulon

XLDnaute Barbatruc
bon ben c'est pas le changement d'extension non plus

les éviter je veux bien mais là il n'y a aucune raison c'est simplement des fichiers texte que j'ai créé moi même au même titre que celui avec pour nom ,tout les lettre (caractères particulier)

parce que si on se dit bon ok on les sautes , a l'utilisation on va avoir des surprises impossibles a gérer
dans le sens ou la recherche d'un fichier donnera rien alors qu'il est bien présent et pour une raison inconnu il est pas pris

en attendant tant pis la boucle replace fait son job

sincèrement c'est une énigme ce truc

purée ca me mine de pas savoir
 

patricktoulon

XLDnaute Barbatruc
re
ha ben voila
en fait quand on renomme avec des accents ça déconne
mais quand on fait un enregistrer sous ca passe
il se passe donc quelque chose au renommage
l’éditeur de texte( dans le quel on tape le nom) pendant le renommage n'est pas au bon format
c'est là qu'il faut chercher
 

Dudu2

XLDnaute Barbatruc
Tu sais quoi ? Je vais m'arrêter là.
Il y a ce mystère et il y en a une autre.
J'ai listé les fichiers de C:\Windows.
VBA Dir et VBA FSO en trouvent 244 de plus que DOS Dir.
J'ai regardé les premiers fichiers en sus concernés des solutions VBA, ils n'existent pas.
Mais bon je commence à saturer sur cette histoire. J'ai les yeux qui se croisent.
 

patricktoulon

XLDnaute Barbatruc
re
je te l'ai dit déjà
dir vba est très particulier c'est pour ca que je do loop avec tout les critères
d'autant plus que certains fichier dans windows ne passeront pas avec dir mais avec FSO ils passeront

cela dit lister C c'est pour le sport sinon on cherche dans un dossier précis
dir vba fonctionne parfaitement bien en disque global sur un autre que C

tu a lu ma dernière réponse j'ai trouvé le shmilblik
 

Dudu2

XLDnaute Barbatruc
Ça c'est sûr, après tous ces essais !

A propos, même Everything ne s'y retouve pas:

Ici avec <î>en recherche il prend aussi le <i> et donc trouve le fichier


Ici il cherche <ît> ou <it> et ne le trouve pas car le fichier est vu / lu comme <i^t>
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
oui peut être que l'explorer a le correctif justement et a une gestion de l’approximatif de façon a avoir un balayage plus large

je suis tombé sur une discussion dont l'auteur avait exactement le même problème et mon ami Mar_L avais eu la gentillesse de répondre
et donc fso semble être la seule solution au détriment de la rapidité , sinon boucle replace dans dir

la compil de nos fonctions
 

Pièces jointes

  • liste dossier fichier DIR récursive 2021 ddudu2 patricktoulon.xlsm
    49.8 KB · Affichages: 6

Dudu2

XLDnaute Barbatruc
Ah ben j'allais le dire !!
En fait, il n'y a que la méthode FSO qui soit fiable.
Car VBA DIR ou DOS DIR (même en code page 1252) ne peut pas traiter des cas comme ça que je viens de découvrir:
VBA FSO -> Adobe Photoshop Elements 9 Важная информация.html
VBA DIR -> Erreur
DOS DIR -> Adobe Photoshop Elements 9 ?????? ??????????.html

Et c'est juste un exemple. J'en ai plein d'autres.
Et c'est normal car le Code Page 1252 c'est ANSI Latin 1; Western European (Windows) et ça ne peut pas tout couvrir.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Oui, c'est là l'ambigüité. Si tu fait F2 sur une fichier à problème et <Ctrl + C> pour copier le nom (hors extension) et que tu le colles dans un fichier Texte, il sera "correct", comme dans la TextBox.

Enfin "presque correct":
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…