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

fichiers et repertoire

5 réponses
Avatar
STEPH B
Bonjour

Je dispose d un répertoire sous un lecteur "s:"

donc "s:\dossier"

sous ce répertoire il y a 3 repertoire
BAT A
BAT B
BAT C
ce qui donne
"s:\dossier\BAT A"
"s:\dossier\BAT B"
"s:\dossier\BAT C"

sous chaucun de ces 3 repertoires il y a une multitude de répertoires

sous chacun de ces sous répertoires il y a a chaque fois un fichier nommé
"*ARCHIVE*.pdf"

je voudrais que excel me créé un répertoire sous "d:\" par exemple
et me créé "d:\BAT A" avec dessous tous les fichiers "*ARCHIVE*.pdf" trouvé
sous "s:\dossier\BAT A" et ainsi de suite pour B et C.

merci d 'avance

5 réponses

Avatar
DanielCo
Bonjour.
Essaie d'exécuter la macro test suivante (non testée) d'après une macro
de JB :

Sub test()
Dim Chemins
Const Chemin = "s:dossierBAT "
Chemins = Array("A", "B", "C")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Item In Chemins
rep = Chemin & Item
repcible = "d:BAT " & Item
MkDir repcible
Set dossier_racine = fso.getfolder(rep)
Set dossier_racine = fso.getfolder("d:donneesdaniel")
Lit_dossier1 dossier_racine, repcible
Next Item
End Sub
Sub Lit_dossier1(ByRef dossier, repcible)
For Each f In dossier.Files
If IsNumeric(Application.Find("*ARCHIVE*.pdf", f.Name)) Then
FileCopy f.Path, repcible & "" & f.Name
End If
Next f
For Each d In dossier.SubFolders
Lit_dossier1 d, r
Next
End Sub

Cordialement.
Daniel
Avatar
DanielCo
Oups.

Sub test()
Dim Chemins, Rep As String, RepCible As String
Const Chemin = "s:dossierBAT "
Chemins = Array("A", "B", "C")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Item In Chemins
Rep = Chemin & Item
RepCible = "d:BAT " & Item
MkDir RepCible
Set dossier_racine = fso.getfolder(Rep)
Lit_dossier1 dossier_racine, RepCible
Next Item
End Sub
Sub Lit_dossier1(ByRef dossier, RepCible)
For Each f In dossier.Files
If IsNumeric(Application.Find("*ARCHIVE*.pdf", f.Name)) Then
FileCopy f.Path, RepCible & "" & f.Name
End If
Next f
For Each d In dossier.SubFolders
Lit_dossier1 d, r
Next
End Sub

Daniel
Avatar
STEPH B
merci pour ton code ca a l air d etre dans le mouvement de ce que je
souhaite il créé bien les repertoire BAT A B C
mais sur mon repertoire source les fichiers ARCHIVE*.pdf sont sous des sous
sous répertoires
et ce le code ne le calcul pas.




"DanielCo" a écrit dans le message de news:
ifckft$4j4$
Oups.

Sub test()
Dim Chemins, Rep As String, RepCible As String
Const Chemin = "s:dossierBAT "
Chemins = Array("A", "B", "C")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Item In Chemins
Rep = Chemin & Item
RepCible = "d:BAT " & Item
MkDir RepCible
Set dossier_racine = fso.getfolder(Rep)
Lit_dossier1 dossier_racine, RepCible
Next Item
End Sub
Sub Lit_dossier1(ByRef dossier, RepCible)
For Each f In dossier.Files
If IsNumeric(Application.Find("*ARCHIVE*.pdf", f.Name)) Then
FileCopy f.Path, RepCible & "" & f.Name
End If
Next f
For Each d In dossier.SubFolders
Lit_dossier1 d, r
Next
End Sub

Daniel


Avatar
DanielCo
Ca devrait être mieux :

Sub test()
Dim Chemins, Rep As String, RepCible As String
'Const Chemin = "s:dossierBAT "
Const Chemin = "d:donneesdanielmpfetempDossierBAT "
Chemins = Array("A", "B", "C")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Item In Chemins
Rep = Chemin & Item
RepCible = "d:BAT " & Item
MkDir RepCible
Set dossier_racine = fso.getfolder(Rep)
Lit_dossier1 dossier_racine, RepCible
Next Item
End Sub
Sub Lit_dossier1(ByRef dossier, RepCible)
For Each f In dossier.Files
If IsNumeric(Application.Find("ARCHIVE", f.Name)) And _
Right(f.Name, 4) = ".pdf" Then
FileCopy f.Path, RepCible & "" & f.Name
End If
Next f
For Each d In dossier.SubFolders
Lit_dossier1 d, RepCible
Next
End Sub

Daniel
Avatar
DanielCo
... en reprenant TES noms de dossier :

Sub test()
Dim Chemins, Rep As String, RepCible As String
Const Chemin = "s:dossierBAT "
Chemins = Array("A", "B", "C")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each Item In Chemins
Rep = Chemin & Item
RepCible = "d:BAT " & Item
MkDir RepCible
Set dossier_racine = fso.getfolder(Rep)
Lit_dossier1 dossier_racine, RepCible
Next Item
End Sub
Sub Lit_dossier1(ByRef dossier, RepCible)
For Each f In dossier.Files
If IsNumeric(Application.Find("ARCHIVE", f.Name)) And _
Right(f.Name, 4) = ".pdf" Then
FileCopy f.Path, RepCible & "" & f.Name
End If
Next f
For Each d In dossier.SubFolders
Lit_dossier1 d, RepCible
Next
End Sub

Daniel