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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
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
 
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 😉
 
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.
 
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
 
Ç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
1612631904967.png


Ici il cherche <ît> ou <it> et ne le trouve pas car le fichier est vu / lu comme <i^t>
1612631932528.png
 
Dernière édition:
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

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:
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":
1612638008105.png
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour