Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exécuter une macro sur tous les fichiers d'un répertoire

2 réponses
Avatar
Tatoonage
Bonjour =E0 tous,

J'ai une liste de r=E9pertoire dans un tableau excel, tous en colonne.
Chaque ligne correspond donc =E0 un r=E9pertoire.
Je voudrais donc ex=E9cuter une macro sur chaque fichier contenu dans
chaque r=E9pertoire.

Une id=E9e ? Merci d'avance.

2 réponses

Avatar
MichDenis
Bonjour Tatoonage,

Adapte le nom de la feuille et de la plage de cellules.
le contenu de tes cellules doit correspondre à un
chemin de répertoire existant.
ça devrait ressembler à ceci :

'------------------------------------
Sub Test()
Dim Rg as range,Fichier as string, C as range

With Worksheets("Feuil1")
set Rg = .range("A1:A" & .Range("A65536").end(xlup).row)
End with

For each c in Rg
if c<>"" then
Fichier = dir(c & "*.*")
do while fichier <> ""
'Fichier = "Nom du fichier seulement"
"C = Chemin du fichier inscrit dans la cellule"
'le traitement de ton fichier

fichier = dir()
loop
end if
next
end sub
'------------------------------------


"Tatoonage" a écrit dans le message de groupe de discussion :

Bonjour à tous,

J'ai une liste de répertoire dans un tableau excel, tous en colonne.
Chaque ligne correspond donc à un répertoire.
Je voudrais donc exécuter une macro sur chaque fichier contenu dans
chaque répertoire.

Une idée ? Merci d'avance.
Avatar
isabelle
bonjour Tatoonage,

Sub Fichier_Répertoires()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
Set plg = ActiveSheet.Range("A1:A" &
ActiveSheet.Range("A65536").End(xlUp).Row)
For Each c In plg
NomDossier = c
Set Dossier = fso.GetFolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
MsgBox File.Name
'action à accomplir ici
Next
End If
Next
End Sub

isabelle

Tatoonage a écrit :
Bonjour à tous,

J'ai une liste de répertoire dans un tableau excel, tous en colonne.
Chaque ligne correspond donc à un répertoire.
Je voudrais donc exécuter une macro sur chaque fichier contenu dans
chaque répertoire.

Une idée ? Merci d'avance.