Problème de parcours de Dossiers
Résolu
VlkPr3s
Messages postés
235
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Problème de parcours de Dossiers
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
- Mes parcours google - Guide
- Afficher taille des dossiers windows - Guide
2 réponses
Bonjour,
Regarde ce code de Jacques Boisgontier :
Regarde ce code de Jacques Boisgontier :
Dim ligne Sub arborescenceRepertoire() racine = ChoixDossier() ' ou un répertoire C:\xxx e.g. If racine = "" Then Exit Sub Range("A:E").ClearContents Set fs = CreateObject("Scripting.FileSystemObject") Set dossier_racine = fs.getfolder(racine) ligne = 3 Lit_dossier dossier_racine, 1 End Sub Sub Lit_dossier(ByRef dossier, ByVal niveau) Cells(ligne, 1) = String(3 * (niveau - 1), " ") & dossier.Name ligne = ligne + 1 For Each d In dossier.SubFolders Lit_dossier d, niveau + 1 Next End Sub Function ChoixDossier() If Val(Application.Version) >= 10 Then With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = ActiveWorkbook.Path & "\" .Show If .SelectedItems.Count > 0 Then ChoixDossier = .SelectedItems(1) Else ChoixDossier = "" End If End With Else ChoixDossier = InputBox("Répertoire?") End If End Function
Bonjour,
Si j'ai bien compris...
Tu as deux répertoires contenant un nombre inconnu de sous répertoires. Le premier répertoire contient (dans ses sous-rép) des fichiers .pdf et le second des fichiers visio.
Tu souhaites, en fonction des noms des fichiers et de leurs dates de création, exporter certains fichiers visio en .pdf.
C'est cela?
Si j'ai bien compris...
Tu as deux répertoires contenant un nombre inconnu de sous répertoires. Le premier répertoire contient (dans ses sous-rép) des fichiers .pdf et le second des fichiers visio.
Tu souhaites, en fonction des noms des fichiers et de leurs dates de création, exporter certains fichiers visio en .pdf.
C'est cela?
Si oui, pour plus de clarté, je procèderais de la sorte :
A partir du code ci-dessous :
- Une fonction principale => qui lance le bouzin et les fonctions dans l'ordre
- Une fonction de "listage" des fichiers et stocke leurs noms et leurs dates de création dans une variable tableau (FicPdfs() pour les fichiers pdf et FicVisios pour les vsd)
- Une fonction de comparaison des deux variables tableaux.
A partir du code ci-dessous :
- adapte ce qui doit l'être
- construit la Sub Compare
Option Explicit '******************** * * * * A ADAPTER * * * * ************************************** Const RepertPdf As String = "C:\Travail\2015\PDFS" 'Chemin des fichiers pdf Const RepertVisio As String = "C:\Travail\2015\VSDS" 'Chemin des fichiers visio Const ExtPdf As String = "pdf" 'Extension des fichiers pdf Const ExtVisio As String = "vsd" 'Extension des fichiers visio '******************** * * * * * * * * * * * ************************************** Dim FicPdfs(), FicVisios() Sub Principale() Dim fs As Object, dossier_racine As Object 'If RepertPdf = "" Or RepertVisio = "" Then Exit Sub Set fs = CreateObject("Scripting.FileSystemObject") 'Liste les fichiers pdf et leurs FileDateTime Set dossier_racine = fs.getfolder(RepertPdf) Lit_dossier dossier_racine, 1, FicPdfs, ExtPdf, 1 'Liste les fichiers vsd et leurs FileDateTime Set dossier_racine = fs.getfolder(RepertVisio) Lit_dossier dossier_racine, 1, FicVisios, ExtVisio, 1 Compare End Sub Sub Lit_dossier(ByRef dossier As Object, ByVal niveau As Integer, NomF(), ext As String, i As Long) Dim NomFic As String, d As Object For Each d In dossier.SubFolders NomFic = Dir(d & "\*." & ext) Do While NomFic <> "" ReDim Preserve NomF(1 To 2, 1 To i) NomF(1, i) = NomFic NomF(2, i) = Format(FileDateTime(d & "\" & NomFic), "DD-MM-YYYY HH") i = i + 1 NomFic = Dir Loop Lit_dossier d, niveau + 1, NomF, ext, i Next End Sub Sub Compare() End Sub
La macro que je te donne liste tous les fichiers d'un répertoire et de ses sous répertoires... A toi de l'adapter pour qu'elle fasse ce que tu désires...
For each oSubFolderbis in oFldb.SubFolders
.....
For each oSubFolder in oFld.SubFolders
....
next
next
quand je remonte à mon dossier type PDF\ pour accéder ainsi à PDF\Clientsuivant
et bien il s'arrête au premiere for each et donc ne prend pas en compte le dossier VISIO\Clientsuivant