Boucler dans un répertoire pour changer des noms de fichiers

Bonsoir le forum

En pièce jointe j'ai mis un fichier (renom-dos)qui à l'aide d'une macro me permet de préparer des chemins et des noms afin de modifier le nom de fichiers contenus dans des sous répertoire dans un répertoire.

Ce que je cherche à faire, c'est à boucler dans le même répertoire afin de changer:

1) le nom d'un fichier contenu dans un sous répertoire portant le nom que je veux lui attribuer,

Ex:

Rep1

sousrep1

fichier.txt

sousrep2

fichier.txt

sousrep3

fichier.txt

2) faire une copie du même fichier au format *.txt en *.xlsx

Ex:

Rep1

sousrep1

fichier.txt

fichier.xlsx

sousrep2

fichier.txt

fichier.xlsx

sousrep3

fichier.txt

fichier.xlsx

puis pour finir importer les données de chaque fichier *.xlsx dans une seule et unique nouvelle feuille du classeur en sautant 2 lignes entre chaque tableau importer.

Je mets 1 modèle de fichier (fiber_info_otdr.txt) que je cherche à renommer afin de faire des tests (le fichier à renommer porte toujours le même nom, mais contenir un tableau avec un nombre de ligne différent

d'avance je vous remercie pour votre aide et votre disponibilité

9fiber-info-otdr.txt (987.00 Octets)
21renom-dos.xlsm (21.01 Ko)

Bonsoir le forum

Afin de renommer mes fichiers dans tous mes sous répertoires, j'ai écris ce code,

Function mDF_Choix(Titre As String) As String

Dim objFolder As Object
Dim Chemin As String

Set objFolder = CreateObject("Shell.Application").BrowseForFolder(0, Titre, 513, 0)

If objFolder Is Nothing Then Exit Function

On Error Resume Next

Chemin = objFolder.Items.Item.Path & "\"

On Error GoTo 0

mDF_Choix = IIf(Left(Chemin, 1) = ":", "", Chemin)

End Function

Sub Renomme_fich()
Dim Chemin As String
Dim Rep, Ligne, F, fold, filtre

Rep = mDF_Choix("Choisissez le répertoire à traiter") ' répertoire à examiner

If Rep = "" Then Exit Sub

Chemin = "Rep"

Set fold = CreateObject("Scripting.FileSystemObject").GetFolder(folder)

For Each F In fold.SubFolders

If Right(F, 1) <> "\" Then listfolder F & "\", filtre, a, n Else listfolder F, filtre, a, n

Next

For Ligne = 1 To 100
'For Each F In fold.SubFolders

Name Chemin & Cells(Ligne, 1) As Chemin & Cells(Ligne, 2)
Next Ligne
'Next
End Sub

mais je plante, j'arrive bien à aller dans le répertoire, mais après j'ai le message d'erreur suivant : Erreur d'exécution '5': Argument ou appel de procédure incorrect

en surlignant

Set fold = CreateObject("Scripting.FileSystemObject").GetFolder(folder)

je ne comprends pas

Merci pour votre aide

Je mets en pièce jointe un fichier qui je pense pourrait faire exactement de que je veux pour le renommage des fichiers, j'ai juste besoin par contre il s'arrête au niveau du répertoire, alors que loi j'ai besoin d'aller renommer mes fichiers dans chaque sous-répertoires de mon répertoire

Dans la colonne "I" du fichier j'ai mis le chemin de chaque fichiers que je voudrais renommer

Si quelqu'un pouvait y regarder, Svp

D'avance merci pour votre aide et votre disponibilité

Rechercher des sujets similaires à "boucler repertoire changer noms fichiers"