Ouvrir Fichier d'un répertoire avec sous-répertoires
3 réponses
Jérémy
Bonjour,
Voici mon probl=E8me : J'ai besoin d'ouvrir tous les fichier d'un
r=E9pertoire donn=E9. Pas de soucis de ce c=F4t=E9 l=E0.
Mon probl=E8me est que mon r=E9pertoire "C:\temp" contient des sous-
r=E9pertoires "C\Temp\doc", ......
Il faut que pour tous les fichiers du r=E9pertoire Temp, y compris ceux
se trouvant dans les sous-r=E9pertoires, que j'ex=E9cute un programme.
Pourriez-vous m'aider? Merci par avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Jérémy,
voici un exemple, il faudra l'adapter pour ton traitement,
' necessite d'activer la reference Microsoft Scripting RunTime
Sub test() Dim rep As String rep = "C:Documents and SettingsAdministrateurMes documentsLaCreationCarteGéo" RépertoireEtSousRépertoire rep, 0, False Columns("A:B").AutoFit Range("A:B").HorizontalAlignment = xlLeft End Sub
Sub RépertoireEtSousRépertoire(LeDossier$, Idx As Long, Optional SousFldr = True) Dim FSO As Object, Dossier As Object Dim SousRep As Object, Fich As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set Dossier = FSO.GetFolder(LeDossier) For Each Fich In Dossier.Files
'Liste les resultats en colonne A et B, ou faire un autre traitement au besoin '--------------------------------------------- Idx = Idx + 1 Cells(Idx, 1).Value = Fich.ParentFolder Cells(Idx, 2).Value = Fich.Name '-------------------------------------------- Next For Each SousRep In Dossier.SubFolders RépertoireEtSousRépertoire SousRep.Path, Idx Next SousRep End Sub
isabelle
Le 2010-05-28 09:39, Jérémy a écrit :
Bonjour,
Voici mon problème : J'ai besoin d'ouvrir tous les fichier d'un répertoire donné. Pas de soucis de ce côté là. Mon problème est que mon répertoire "C:temp" contient des sous- répertoires "CTempdoc", ...... Il faut que pour tous les fichiers du répertoire Temp, y compris ceux se trouvant dans les sous-répertoires, que j'exécute un programme. Pourriez-vous m'aider? Merci par avance
bonjour Jérémy,
voici un exemple, il faudra l'adapter pour ton traitement,
' necessite d'activer la reference Microsoft Scripting RunTime
Sub test()
Dim rep As String
rep = "C:Documents and SettingsAdministrateurMes
documentsLaCreationCarteGéo"
RépertoireEtSousRépertoire rep, 0, False
Columns("A:B").AutoFit
Range("A:B").HorizontalAlignment = xlLeft
End Sub
Sub RépertoireEtSousRépertoire(LeDossier$, Idx As Long, Optional
SousFldr = True)
Dim FSO As Object, Dossier As Object
Dim SousRep As Object, Fich As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dossier = FSO.GetFolder(LeDossier)
For Each Fich In Dossier.Files
'Liste les resultats en colonne A et B, ou faire un autre traitement au
besoin
'---------------------------------------------
Idx = Idx + 1
Cells(Idx, 1).Value = Fich.ParentFolder
Cells(Idx, 2).Value = Fich.Name
'--------------------------------------------
Next
For Each SousRep In Dossier.SubFolders
RépertoireEtSousRépertoire SousRep.Path, Idx
Next SousRep
End Sub
isabelle
Le 2010-05-28 09:39, Jérémy a écrit :
Bonjour,
Voici mon problème : J'ai besoin d'ouvrir tous les fichier d'un
répertoire donné. Pas de soucis de ce côté là.
Mon problème est que mon répertoire "C:temp" contient des sous-
répertoires "CTempdoc", ......
Il faut que pour tous les fichiers du répertoire Temp, y compris ceux
se trouvant dans les sous-répertoires, que j'exécute un programme.
Pourriez-vous m'aider? Merci par avance
voici un exemple, il faudra l'adapter pour ton traitement,
' necessite d'activer la reference Microsoft Scripting RunTime
Sub test() Dim rep As String rep = "C:Documents and SettingsAdministrateurMes documentsLaCreationCarteGéo" RépertoireEtSousRépertoire rep, 0, False Columns("A:B").AutoFit Range("A:B").HorizontalAlignment = xlLeft End Sub
Sub RépertoireEtSousRépertoire(LeDossier$, Idx As Long, Optional SousFldr = True) Dim FSO As Object, Dossier As Object Dim SousRep As Object, Fich As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set Dossier = FSO.GetFolder(LeDossier) For Each Fich In Dossier.Files
'Liste les resultats en colonne A et B, ou faire un autre traitement au besoin '--------------------------------------------- Idx = Idx + 1 Cells(Idx, 1).Value = Fich.ParentFolder Cells(Idx, 2).Value = Fich.Name '-------------------------------------------- Next For Each SousRep In Dossier.SubFolders RépertoireEtSousRépertoire SousRep.Path, Idx Next SousRep End Sub
isabelle
Le 2010-05-28 09:39, Jérémy a écrit :
Bonjour,
Voici mon problème : J'ai besoin d'ouvrir tous les fichier d'un répertoire donné. Pas de soucis de ce côté là. Mon problème est que mon répertoire "C:temp" contient des sous- répertoires "CTempdoc", ...... Il faut que pour tous les fichiers du répertoire Temp, y compris ceux se trouvant dans les sous-répertoires, que j'exécute un programme. Pourriez-vous m'aider? Merci par avance
FFO
Salut à toi
En espérant qu'il n'y ai pas de sous/sous répertoire tu peux utiliser ce code :
Fichier = Dir("C:Chemin**", vbDirectory) Do While Fichier <> "" If Fichier Like "*.*" = False Then Dossier = Dossier & Fichier & "/" Else If Fichier <> "." And Fichier <> ".." Then
Ton code d'ouverture (Fichier) du répertoire
End If End If Fichier = Dir Loop If Dossier <> "" Then For i = 0 To UBound(Split(Dossier, "/")) - 1 Fichier = Dir("C:Chemin" & Split(Dossier, "/")(i) & "**") Do While Fichier <> ""
Ton code d'ouverture (Fichier) du sous répertoire
Fichier = Dir Loop Next End If
Celà devrait convenir
Dis moi !!!!!
Salut à toi
En espérant qu'il n'y ai pas de sous/sous répertoire tu peux utiliser ce
code :
Fichier = Dir("C:Chemin**", vbDirectory)
Do While Fichier <> ""
If Fichier Like "*.*" = False Then
Dossier = Dossier & Fichier & "/"
Else
If Fichier <> "." And Fichier <> ".." Then
Ton code d'ouverture (Fichier) du répertoire
End If
End If
Fichier = Dir
Loop
If Dossier <> "" Then
For i = 0 To UBound(Split(Dossier, "/")) - 1
Fichier = Dir("C:Chemin" & Split(Dossier, "/")(i) & "**")
Do While Fichier <> ""
En espérant qu'il n'y ai pas de sous/sous répertoire tu peux utiliser ce code :
Fichier = Dir("C:Chemin**", vbDirectory) Do While Fichier <> "" If Fichier Like "*.*" = False Then Dossier = Dossier & Fichier & "/" Else If Fichier <> "." And Fichier <> ".." Then
Ton code d'ouverture (Fichier) du répertoire
End If End If Fichier = Dir Loop If Dossier <> "" Then For i = 0 To UBound(Split(Dossier, "/")) - 1 Fichier = Dir("C:Chemin" & Split(Dossier, "/")(i) & "**") Do While Fichier <> ""
Ton code d'ouverture (Fichier) du sous répertoire
Fichier = Dir Loop Next End If
Celà devrait convenir
Dis moi !!!!!
Jérémy
Merci à tous les 2! J'ai trouvé autre chose entre temps!
Merci à tous les 2!
J'ai trouvé autre chose entre temps!