Google Groupes n'accepte plus les nouveaux posts ni abonnements Usenet. Les contenus de l'historique resteront visibles.

Récupérer noms répertoires/sous-rép. et fichiers

5 vues
Accéder directement au premier message non lu

gauso

non lue,
10 avr. 2008, 02:33:5010/04/2008
à
Bonjour,
Je cherche à pouvoir récupérer, dans un champ texte (Memo), les noms
des répertoires, sous-répertoires, ainsi que les noms (y compris
extensions) des fichiers contenus dans ceux-ci...
Après parcours du forum et de l'aide Access (2003), je ne trouve rien
qui réponde à ma question...
Des pistes, des bouts de codes, que je suis bien incapable
d'adapter...
J'ai écris le code suivant qui fonctionne mais ne me ramène que le
premier niveau (ne va pas chercher dans les sous-répertoires !)

Dim sPath, fso, Directory, SubFolders, Folders, File, Files
Dim sTmp As String
sPath = "NomDeMonRepertoireAExplorer"

Set fso = CreateObject("Scripting.FileSystemObject")
Set Directory = fso.GetFolder(sPath)
Set SubFolders = Directory.SubFolders
For Each Folders In SubFolders
sTmp = sTmp & Folders.name & ";"

Set Files = Directory.Files
For Each File In Files
Debug.Print File.name
sTmp = sTmp & File.name & ";"
Next File

Next Folders
sTmp = Left(sTmp, Len(sTmp) - 1)
MsgBox sTmp
Me![Description] = Me![Description] & vbCrLf & sTmp
Set SubFolders = Nothing
Set fso = Nothing
Set Directory = Nothing
Set File = Nothing
Set Files = Nothing

Merci par avance à ceux qui voudront bien m'aider,
Sonia.

Gilbert

non lue,
10 avr. 2008, 05:12:0310/04/2008
à
Bonjour

Voici une procédure pour lister les répertoires et sous-répertoires.
Tu n'as qu'à y ajouter les fichiers

Sub test()
Call ListerSousRepertoires(LeNomDeTonDossier)
End Sub

Sub ListerSousRepertoires(sPath As String)
Dim fso As Object
Dim Directory As Object
Dim SubFolders As Object
Dim Folders As Object

Set fso = CreateObject("Scripting.FileSystemObject")
Set Directory = fso.GetFolder(sPath)
Set SubFolders = Directory.SubFolders

For Each Folders In SubFolders

Debug.Print strtmp & Folders.Name
Call ListerSousRepertoires(Folders.Path)
Next Folders

Set Folders = Nothing


Set SubFolders = Nothing
Set fso = Nothing
Set Directory = Nothing

End Sub


--
Cordialement,

Gilbert


"gauso" <sonia....@club-internet.fr> a écrit dans le message de
news:36270ee9-27c2-401e...@a22g2000hsc.googlegroups.com...

gogo

non lue,
12 avr. 2008, 06:09:1012/04/2008
à
Bon, j'ai déjà posté une réponse hier directement sur le site et celle-ci
n'apparaît toujours pas !!?
Donc, je réitère en espérant que cette fois le système voudra bien
enregistrer...

Je voulais donc remerçier Gilbert car finalement j'ai bidouillé quelque
chose qui semble bien fonctionner... voilà ce que cela donne (vos critiques
sont les bienvenues sur la forme) :

Sub test()
Call ListerSousRepertoires(LeNomDeTonDossier)
End Sub

Sub ListerSousRepertoires(spath As String)


Dim fso As Object
Dim Directory As Object
Dim SubFolders As Object
Dim Folders As Object

Dim sTmp As String

Set fso = CreateObject("Scripting.FileSystemObject")

Set Directory = fso.GetFolder(spath)
Set SubFolders = Directory.SubFolders

For Each Folders In SubFolders

Debug.Print strtmp & Folders.name
Call ListerSousRepertoires(Folders.Path)
Call ListerFichiers(Folders.Path)
Next Folders

Set Folders = Nothing
Set SubFolders = Nothing
Set fso = Nothing
Set Directory = Nothing
End Sub

Sub ListerFichiers(spath As String)
Dim fso As Object
Dim Repertoire As Object
Dim SubFolder As Object
Dim File, Files As Object

Set fso = CreateObject("Scripting.FileSystemObject")

Set Repertoire = fso.GetFolder(spath)
Set Files = Repertoire.Files

For Each File In Files

Debug.Print strtmp & File.name
Next File

Set Files = Nothing
Set File = Nothing


Set SubFolders = Nothing
Set fso = Nothing

Set Repertoire = Nothing
End Sub

Quand j'exécute cela, j'ai bien tous mes répertoires/sous-répertoires et
fichiers dans la fenêtre d'exécution : seulement voilà, maintenant je ne
sais comment récupérer le contenu de cette fenêtre pour l'intégrer dans le
champ de mon formulaire ? Ou bien une autre méthode pour récupérer
l'information ainsi rassemblée ?
Un truc que je ne pige pas (entre autre) c'est ce "strtmp", déclaré nul part
et qui pourtant passe sans problème ?
Bref merci de m'aider encore un peu : je bloque !
Cordialement,
Sonia.


Michel_D

non lue,
12 avr. 2008, 06:31:4512/04/2008
à
Bonjour,

gogo a écrit :


Ce "strtmp" est une variable non définis donc à la base de type "variant" en
gros le type va s'adapter lors de la 1ére affectation et comme il n'y a pas
d'affectation cette variable ne sert à rien, par contre cette variable ou
plutot "sTmp" pourrait te servir à récupérer par concaténation le résultat,
pour cela il faudrait bien sur transformer la procédure en fonction.

PS: Il doit être possible de regrouper les 2 procédures
ListerSousRepertoires
ListerFichiers

gogo

non lue,
12 avr. 2008, 07:09:5212/04/2008
à
Merci pour ces éclaircissements...
De mon côté j'avance, mais pas encore obtenu tout à fait ce que je
souhaitais (je ne sais pas si c'est possible...?)
Voilà ce que finalement j'ai écris pour récupérer les données dans mon champ
:

Sub test()
Call ListerSousRepertoires(LeNomDeTonDossier)
End Sub

Sub ListerSousRepertoires(spath As String)
Dim fso As Object
Dim Directory As Object
Dim SubFolders As Object
Dim Folders As Object

Dim strtmp

Set fso = CreateObject("Scripting.FileSystemObject")
Set Directory = fso.GetFolder(spath)
Set SubFolders = Directory.SubFolders

For Each Folders In SubFolders
Debug.Print strtmp & Folders.name

strtmp = strtmp & Folders.name & ";"
Call ListerSousRepertoires(Folders.Path)
Call ListerFichiers(Folders.Path)

Next Folders
Me![Description] = Me![Description] & vbCrLf & strtmp

Set Folders = Nothing
Set SubFolders = Nothing
Set fso = Nothing
Set Directory = Nothing
End Sub

Sub ListerFichiers(spath As String)

Dim fso As Object
Dim Repertoire As Object
Dim SubFolder As Object
Dim File, Files As Object

Dim strtmp
Dim recupfichiers As String

Set fso = CreateObject("Scripting.FileSystemObject")

Set Repertoire = fso.GetFolder(spath)
Set Files = Repertoire.Files

For Each File In Files
Debug.Print strtmp & File.name

strtmp = strtmp & File.name & ";"

Next File
Me![Description] = Me![Description] & vbCrLf & strtmp

Set Files = Nothing
Set File = Nothing

Set SubFolder = Nothing


Set fso = Nothing
Set Repertoire = Nothing
End Sub

... cela fonctionne : le seul problème est l'ordre dans lequel je récupère
les noms des répertoires et fichiers : voilà ce qu'il me donne :

Sous-sous-REP1;

ImageSous-REP1.bmp;

Sous-REP1;

Document-REP1.doc;ImageREP1.bmp;

SousREP2;

DocREP2.doc;

REPERTOIRE1;REPERTOIRE2;

Là ou j'aimerais bien avoir quelque chose qui redonne un peu l'organisation
des choses, du genre :

REPERTOIRE1

- Document-REP1.doc;

- ImageREP1.bmp;

- Sous-REP1;

-- ImageSous-REP1.bmp;

-- Sous-sous-REP1;

REPERTOIRE2

- DocREP2.doc;

- SousREP2;

Des idées pour obtenir un tel résultat ?

Par avance, ma reconnaissance :o)

Sonia.


Michel_D

non lue,
12 avr. 2008, 08:30:2712/04/2008
à
gogo a écrit :
> .... cela fonctionne : le seul problème est l'ordre dans lequel je récupère
> les noms des répertoires et fichiers : voilà ce qu'il me donne :
>
> Sous-sous-REP1;
>
> ImageSous-REP1.bmp;
>
> Sous-REP1;
>
> Document-REP1.doc;ImageREP1.bmp;
>
>
>
> SousREP2;
>
> DocREP2.doc;
>
> REPERTOIRE1;REPERTOIRE2;
>
>
>
> Là ou j'aimerais bien avoir quelque chose qui redonne un peu l'organisation
> des choses, du genre :
>
> REPERTOIRE1
>
> - Document-REP1.doc;
>
> - ImageREP1.bmp;
>
> - Sous-REP1;
>
> -- ImageSous-REP1.bmp;
>
> -- Sous-sous-REP1;
>
>
>
> REPERTOIRE2
>
> - DocREP2.doc;
>
> - SousREP2;
>
>
>
> Des idées pour obtenir un tel résultat ?
>
> Par avance, ma reconnaissance :o)
>
> Sonia.


Bon analysont un peu la méthode employée :

En premier tu appelle la procédure "ListerSousRepertoires" avec en paramêtre
le nom du répertoire origine puis tu effectue un traitement récursif (liste)
sur les éventuels sous-répertoires et lorsqu'il n'y a plus de
sous-répertoire tu liste les fichiers.

et toi tu voudrais lister d'abord les fichiers du répertoire à analyser puis
traiter de manière récursive les éventuels sous-répertoire, donc il va falloir
placer la procédure qui liste les fichiers avant la boucle qui traite les
sous-répertoires.

gogo

non lue,
12 avr. 2008, 09:36:1212/04/2008
à
Bon, les choses avançent...
Voilà les petites modifications faites :
Sub ListerSousRepertoires(spath As String)

Dim fso As Object
Dim Directory As Object
Dim SubFolders As Object
Dim Folders As Object
Dim strtmp

Set fso = CreateObject("Scripting.FileSystemObject")
Set Directory = fso.GetFolder(spath)
Set SubFolders = Directory.SubFolders

For Each Folders In SubFolders
Debug.Print strtmp & Folders.name

strtmp = strtmp & Folders.name & ";"

Me![Description] = Me![Description] & vbCrLf & strtmp

Call ListerFichiers(Folders.Path)
Call ListerSousRepertoires(Folders.Path)

Next Folders

Sub ListerFichiers(spath As String)


.... qui me donnent :

REPERTOIRE1;
DocREP1.doc;ImageREP1.bmp;
Sous-REP1;
imageSous-REP1.bmp;
Sous-sous-REP1;

REPERTOIRE1;REPERTOIRE2;
docREP2.doc;
SousREP2;
base-sousREP2.mdb;

... presque parfait quoi :o) Sinon la répétition du noms de l'ensemble des
sous-répertoires de premier niveaux !
On pourrait faire avec car la logique est claire et la correction manuelle
facile, mais bon... et là encore je bloque...
Autre idée ?
Merci encore,

Michel_D

non lue,
12 avr. 2008, 12:22:5212/04/2008
à

Voici comment je ferais :

Dim sTmp As String

Sub Test()
Dim sChemin As String

sChemin = "C:\TonChemin"
sTmp = ""
Lister sChemin
Debug.Print sTmp
End Sub

Sub Lister(sPath)
Dim oFso As Object
Dim oDc As Object
Dim oD As Object
Dim oF As Object

Set oFso = CreateObject("Scripting.FileSystemObject")
If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)
sTmp = sTmp & Mid(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf
For Each oF In oDc.Files
sTmp = sTmp & oF.Name & ";"
Next
sTmp = sTmp & vbCrLf
Set oF = Nothing
For Each oD In oDc.SubFolders
Lister sPath & "\" & oD.Name
Next
End If

Set oFso = Nothing
Set oDc = Nothing
Set oD = Nothing
End Sub

gogo

non lue,
13 avr. 2008, 14:57:5813/04/2008
à
Bonsoir,
Merci beaucoup pour ton intérêt, mais pas encore tout à fait ça : pas
l'ordre souhaité en tous les cas... car voilà ce que cela donne :

Sous-sous-REP1;

Sous-REP1;
imageSous-REP1.bmp;

REPERTOIRE1;
DocREP1.doc;ImageREP1.bmp;

SousREP2;
base-sousREP2.mdb;

REPERTOIRE2;
docREP2.doc;

REPERTOIRE3;
ImageREP3.bmp;

RIBPI_C_1979_01;

... je vais voir si je peux faire mieux (ça m'étonnerait quand même, mais
bon)
Cordialement,
Sonia.


Michel_D

non lue,
13 avr. 2008, 17:14:5113/04/2008
à
re,

gogo a écrit :


> Bonsoir,
> Merci beaucoup pour ton intérêt, mais pas encore tout à fait ça : pas
> l'ordre souhaité en tous les cas... car voilà ce que cela donne :
>
> Sous-sous-REP1;
>
> Sous-REP1;
> imageSous-REP1.bmp;
>
> REPERTOIRE1;
> DocREP1.doc;ImageREP1.bmp;
>
> SousREP2;
> base-sousREP2.mdb;
>
> REPERTOIRE2;
> docREP2.doc;
>
> REPERTOIRE3;
> ImageREP3.bmp;
>
> RIBPI_C_1979_01;
>

> .... je vais voir si je peux faire mieux (ça m'étonnerait quand même, mais
> bon)
> Cordialement,
> Sonia.


Essaye avec le code suivant :

Dim oFso As Object
Dim sTmp As String
Dim sChemin As String

Sub Test()


Set oFso = CreateObject("Scripting.FileSystemObject")

sChemin = "C:\TonChemin"
sTmp = ""
Lister sChemin
Debug.Print sTmp

Set oFso = Nothing
End Sub

Sub Lister(sPath)


Dim oDc As Object
Dim oD As Object
Dim oF As Object

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)
If sPath<>sChemin Then


sTmp = sTmp & Mid(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf
For Each oF In oDc.Files
sTmp = sTmp & oF.Name & ";"
Next
sTmp = sTmp & vbCrLf
Set oF = Nothing

End If


For Each oD In oDc.SubFolders
Lister sPath & "\" & oD.Name
Next
End If

Set oDc = Nothing

gogo

non lue,
14 avr. 2008, 02:40:0114/04/2008
à
Bonjour Michel,
Suite du feuilleton, mais quelle patience ;o)
Bon, j'ai un problème avec ta proposition : à quoi cela sert ton sub test()
? et comment l'utilises-tu ? (la première fois je ne l'ai carrément pas
ajouté car je ne voyais pas à quoi il servait : j'ai ajouté les déclarations
à Lister
Pour info j'associe directement Lister(spath) à click sur un bouton...
Et où je les mets ces déclarations que tu indiques au début ?

> Dim oFso As Object
> Dim sTmp As String
> Dim sChemin As String

Merci de m'éclairer,
Sonia.


"Michel_D" <Michel...@orange-ft.com.invalid> a écrit dans le message de
news: O09ertan...@TK2MSFTNGP06.phx.gbl...

Michel_D

non lue,
14 avr. 2008, 04:13:3714/04/2008
à
Bonjour,

Question :
Comment tu fournis l'indication du chemin si tu associe Lister(sPath)
au click d'un bouton ?

Donne le code que tu utilisais jusqu'à présent ce sera plus simple.

PS:Les variables oFso, sTmp, sChemin sont des variables globales
déclarées à l'extérieur de toutes procédures/fonctions, elles sont donc
visibles par toutes les procédures/fonctions et doivent être situées au
début du code.


"gogo" <sonia....@club-internet.fr> a écrit dans le message de news:u9U2kpfn...@TK2MSFTNGP05.phx.gbl...

gogo

non lue,
14 avr. 2008, 13:54:0714/04/2008
à
Bonsoir,

Ben voilà comment j'ai utilisé ta première proposition :

Sub Lister(sPath)
Dim oFso As Object


Dim oDc As Object
Dim oD As Object
Dim oF As Object

Dim sTmp As String

Set oFso = CreateObject("Scripting.FileSystemObject")

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)

sTmp = sTmp & mId(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf


For Each oF In oDc.Files

sTmp = sTmp & oF.name & ";"


Next
sTmp = sTmp & vbCrLf
Set oF = Nothing

For Each oD In oDc.SubFolders

Lister sPath & "\" & oD.name
Next
End If
Me![Description] = Me![Description] & vbCrLf & sTmp
Set oFso = Nothing


Set oDc = Nothing
Set oD = Nothing
End Sub

Private Sub Commande844_Click()
Lister ("I:\RIBPI\RIBPI_C_1979_01")
End Sub

C'est dans le click que je donne le chemin (la c'est juste pour tester,
ensuite il sera conditionnel : le répertoire à explorer sera fonction de
l'enregistrement en cours...)
Quant aux déclarations en dehors des procédures, chez moi cela ne fonctionne
pas... (ou je ne m'y prends pas comme il faut : mais obligé de remettre le
stmp à l'intérieur du Sub...)


Michel_D

non lue,
15 avr. 2008, 05:24:3715/04/2008
à
Bonjour,

Il faut déclarer les 3 premières variables tous au début (en haut).


Option Compare Database
Dim oFso As Object


Dim sTmp As String
Dim sChemin As String

Sub Test()


Set oFso = CreateObject("Scripting.FileSystemObject")

sChemin = "I:\RIBPI\RIBPI_C_1979_01"
sTmp = ""
Lister sChemin
Me![Description] = sTmp
' MsgBox sTmp
Set oFso = Nothing
End Sub

Sub Lister(sPath)


Dim oDc As Object
Dim oD As Object
Dim oF As Object

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)
If sPath <> sChemin Then
sTmp = sTmp & Mid(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf


For Each oF In oDc.Files

sTmp = sTmp & oF.Name & ";"


Next
sTmp = sTmp & vbCrLf
Set oF = Nothing

End If


For Each oD In oDc.SubFolders

Lister sPath & "\" & oD.Name
Next
End If

Set oDc = Nothing
Set oD = Nothing
End Sub


Private Sub Commande844_Click()
Test
End Sub

"gogo" <sonia....@club-internet.fr> a écrit dans le message de news:OLN6Qiln...@TK2MSFTNGP05.phx.gbl...

gogo

non lue,
15 avr. 2008, 08:09:0315/04/2008
à
Bonjour,
C'est super de chez "ça marche au pt'it poil" :o)
Merci, merci !
(Un tout petit problème restait : cela effaçait le texte initial contenu
dans mon champ Description...
J'ai donc simplement modifié dans Test(), le : Me![Description] = sTmp,
en Me![Description] = Me![Description] & vbCrLf & sTmp)

Ce forum est toujours aussi bien fréquenté...
Reconnaissance éternelle,
Sonia.


"Michel_D" <michel...@orange-ft.com.invalid> a écrit dans le message de
news: fu1s8l$vs8$1...@news.rd.francetelecom.fr...

gogo

non lue,
19 avr. 2008, 02:32:0719/04/2008
à
Bonjour,
Je ne sais si Michel D est encore dans le coin, et encore disposé à
m'aider... car après avoir cru que tout était parfait, j'ai encore deux
problèmes...
J'ai modifié le code parce que le chemin du répertoire à explorer est
conditionnel - (ci-dessous le code)
Et voilà ce qui cloche encore :
1) au résultat je n'ai pas les fichiers du 1er niveau (j'ai par contre tous
les sous-répertoires et les fichiers qu'ils contiennent, voir les sous-sous
répertoires et leurs fichiers...)
2) comment faire en sorte qu'apparaissent clairement la hiérarchie dans mon
résultat : l'ordre est correct et peut se déduire mais jusqu'à un certain
point quand même... ? Possible d'intégrer des tirets devant les occurences
correspondant à leurs niveaux, par exemple :

REPERTOIRE1
- Sous-répertoire1
-- Fichier du sous-répertoire1
-- Sous-sous répertoire1
--- fichier du sous-sous répertoire1
- Sous-répertoire2
-- Fichier du sous-répertoire2
REPERTOIRE2
etc.

hmm??
Par avance encore merci,
Sonia.

Voici le code :

Option Compare Database
Dim oFso As Object
Dim sTmp As String
Dim sChemin As String

Dim RepFonds As String
Dim NomRepObjet As String
Dim ChemRepObjet As String
Dim NomRepPhase As String
Option Explicit

Sub Test2()
RepFonds = "I:\" & Me![Abreviation]
NomRepObjet = Me![Refobjet]
ChemRepObjet = "I:\" & Me![Abreviation] & "\" & NomRepObjet & "\"
NomRepPhase = Me![RepPhase]

Set oFso = CreateObject("Scripting.FileSystemObject")

sChemin = ChemRepObjet & NomRepPhase & "\"
sTmp = ""
Lister sChemin


Me![Description] = Me![Description] & vbCrLf & sTmp
Set oFso = Nothing

End Sub

Sub Lister(sPath)
Dim oDc As Object
Dim oD As Object
Dim oF As Object

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)

If sPath <> sChemin Then


sTmp = sTmp & mId(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf
For Each oF In oDc.Files
sTmp = sTmp & oF.name & ";"
Next
sTmp = sTmp & vbCrLf
Set oF = Nothing

End If
For Each oD In oDc.SubFolders

Lister sPath & "\" & oD.name

Michel_D

non lue,
19 avr. 2008, 08:44:1219/04/2008
à
Bonjour,

Ne déclare en variable globale que lorsque c'est nécessaire sinon il vaut
mieux déclarer les variables au niveau de la procédure ou de la fonction
ou elle s'applique, ceci étant dit, voila ma proposition :


Option Compare Database
Dim oFso As Object
Dim sTmp As String
Dim sChemin As String

Option Explicit

Sub Test2()
' RepFonds = "I:\" & Me![Abreviation]
' NomRepObjet = Me![Refobjet]
' ChemRepObjet = "I:\" & Me![Abreviation] & "\" & NomRepObjet & "\"
' NomRepPhase = Me![RepPhase]

Set oFso = CreateObject("Scripting.FileSystemObject")
' sChemin = ChemRepObjet & NomRepPhase & "\"

sChemin = "I:\" & Me![Abreviation] & "\" & Me![Refobjet] & "\" & Me![RepPhase]
sTmp = ""
Lister sChemin, 0


Me![Description] = Me![Description] & vbCrLf & sTmp
Set oFso = Nothing
End Sub

Sub Lister(sPath, Niv)


Dim oDc As Object
Dim oD As Object
Dim oF As Object

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)
If sPath <> sChemin Then

sTmp = sTmp & String(Niv-1,"-") & Mid(sPath,InstrRev(sPath,"\")+1) & ";" & vbcrlf
End If
If oDc.Files.Count>0 Then
sTmp = sTmp & String(Niv,"-")


For Each oF In oDc.Files
sTmp = sTmp & oF.name & ";"
Next
sTmp = sTmp & vbCrLf
Set oF = Nothing
End If
For Each oD In oDc.SubFolders

Lister sPath & "\" & oD.name,Niv+1


Next
End If
Set oDc = Nothing
Set oD = Nothing
End Sub


gogo a écrit :

gogo

non lue,
19 avr. 2008, 08:44:0919/04/2008
à
Re,
En fait j'ai réussi à résoudre le premier problème, a ajoutant une condition
(si le répertoire est égal au répertoire courant) : et là j'ai donc aussi
les fichiers de premier niveau.. Cela donne :

Sub Lister(sPath)
Dim oDc As Object
Dim oD As Object
Dim oF As Object

If oFso.FolderExists(sPath) Then
Set oDc = oFso.GetFolder(sPath)

If sPath = sChemin Then 'code ajouté : toute la condition If... End if


sTmp = sTmp & mId(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf
For Each oF In oDc.Files

sTmp = sTmp & oF.name & ";" & vbCrLf & "- "
Next
sTmp = sTmp & vbCrLf & "- "


Set oF = Nothing
End If

If sPath <> sChemin Then


sTmp = sTmp & mId(sPath, InStrRev(sPath, "\") + 1) & ";" & vbCrLf
For Each oF In oDc.Files

sTmp = sTmp & oF.name & ";" & vbCrLf & "- "
Next
sTmp = sTmp & vbCrLf & "- "


Set oF = Nothing
End If
For Each oD In oDc.SubFolders
Lister sPath & "\" & oD.name
Next
End If
Set oDc = Nothing
Set oD = Nothing
End Sub

Dites-moi si c'est la bonne méthode ? (en tous les cas ça marche)...
Par contre je n'ai pas avancé sur le 2e problème : trouver le moyen de
rendre explicite la hiérarchie...
En espérant que quelqu'un saura m'aider ?
Par avance, merci !
Sonia.


gogo

non lue,
19 avr. 2008, 09:12:2419/04/2008
à
Merci beaucoup Michel pour ta fidélité :o)

Pour l'instant cela plante sur Niv : non défini... je déclare comment ?
A plus,
Sonia.

"Michel_D" <Michel...@orange-ft.com.invalid> a écrit dans le message de
news: eMUsUsho...@TK2MSFTNGP04.phx.gbl...

Michel_D

non lue,
19 avr. 2008, 09:54:4819/04/2008
à
re,

Tu as du oublier ceci :

Sub Lister(sPath, Niv)

que tu peux d'ailleurs transformer en :

Sub Lister(sPath As String, Niv As Long)


gogo a écrit :

gogo

non lue,
19 avr. 2008, 10:12:0319/04/2008
à
Oups ! en effet...
Je viens d'essayer : évidemment ça fonctionne du feu de Dieu...
Alors bon, je ne sais plus quoi dire : braci, mervo... ou l'inverse... ;o)
En espérant ne plus avoir à te déranger,
Bon week-end,
Sonia.

"Michel_D" <Michel...@orange-ft.com.invalid> a écrit dans le message de

news: %23%23nUxTio...@TK2MSFTNGP03.phx.gbl...

Michel_D

non lue,
19 avr. 2008, 10:32:4919/04/2008
à
gogo a écrit :

> Oups ! en effet...
> Je viens d'essayer : évidemment ça fonctionne du feu de Dieu...
> Alors bon, je ne sais plus quoi dire : braci, mervo... ou l'inverse... ;o)
> En espérant ne plus avoir à te déranger,


Mais tu ne me dérange pas et puis je ne suis pas tout seul à pouvoir te répondre.


> Bon week-end,


A toi aussi.

0 nouveau message