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

Liste de fichiers

4 réponses
Avatar
erwann67
Bonjour

Dans un dossier ( Clients ), j'ai 3000 sous dossiers ( Alfred, Amine,
Bertrand,... )

Je souhaite obtenir de l'aide pour créer une macro qui me permette de
reprendre
à travers une boucle de type For next ou For each next
le nom des sous dossiers du dossier Clients dans une feuille Excel
Ex : C1 : Alfred
C2 : Amine,...

Merci

4 réponses

Avatar
jps
bonjour enwann
peut-être pourrais-tu adapter cette proc de laurent longre qui suppose que
tu coches dans VBE la référence Microsoft Scripting Runtime, je pense
mais peut-être que je n'ai pas tout compris de ta question
jps
Voici par exemple comment reproduire l'arborescence des répertoires du

disque dur (non triés) dans une feuille de calcul avec cette

bibliothèque:

Dim I As Long, J As Integer

Sub Test()

Application.ScreenUpdating = False

Sheets.Add

I = 1: J = 0

With New FileSystemObject

Récurse .GetFolder("C:") 'ici tu devras adapter avec le nom de ton
répertoire

End With

ActiveSheet.UsedRange.EntireColumn.AutoFit

ActiveWindow.Zoom = 75

End Sub

Private Sub Récurse(ByVal F As Folder)

If F.SubFolders.Count Then

Dim SF As Folder

I = I - 1

J = J + 1

For Each SF In F.SubFolders

I = I + 1

Cells(I, J) = SF.Name

Récurse SF

Next SF

J = J - 1

End If

End Sub

"erwann67" a écrit dans le message de
news:
Bonjour

Dans un dossier ( Clients ), j'ai 3000 sous dossiers ( Alfred, Amine,
Bertrand,... )

Je souhaite obtenir de l'aide pour créer une macro qui me permette de
reprendre
à travers une boucle de type For next ou For each next
le nom des sous dossiers du dossier Clients dans une feuille Excel
Ex : C1 : Alfred
C2 : Amine,...

Merci


Avatar
JB
Bonjour,

Sub ListeFichiers()
Application.ScreenUpdating = False
Range("A2:E65000").ClearContents
ChDir ActiveWorkbook.Path
Range("A2").Select
nf = Dir("*.xls")
Do While nf <> ""
ActiveCell = nf
ActiveCell.Offset(0, 1) = FileDateTime(nf)
ActiveCell.Offset(0, 2) = FileLen(nf)
ActiveCell.Offset(0, 3) = GetAttr(nf)
If GetAttr(nf) And vbReadOnly Then ActiveCell.Offset(0, 4) =
ActiveCell.Offset(0, 4) & " Lect"
ActiveCell.Offset(1, 0).Select
nf = Dir
Loop
Range("A2").Select
End Sub

http://boisgontierjacques.free.fr/pages_site/GestionRepertoire.htm#ListeFic hiers

JB
http://boisgontierjacques.free.fr/

On 10 août, 11:34, erwann67
wrote:
Bonjour

Dans un dossier ( Clients ), j'ai 3000 sous dossiers ( Alfred, Amine,
Bertrand,... )

Je souhaite obtenir de l'aide pour créer une macro qui me permette de
reprendre
à travers une boucle de type For next ou For each next
le nom des sous dossiers du dossier Clients dans une feuille Excel
Ex : C1 : Alfred
C2 : Amine,...

Merci


Avatar
gary
Ma solution (chais pu aki jlé prise)

Je reste dans Excel
Je me sert d'une boite de dialogue excel pour sélectionner les fichiers que
je veux : tous ou une sélection.
Et il m'écrit sur la feuille où je travaille, à la première ligne libre, le
chemin + nom du fichier.

avec 3000 noms ça devrait encore marcher


Sub recupFileNames()
' localisation destination
Dim Debut As Integer
'ActiveSheet.Cells("A1").Select
'Debut = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'marche mais
: les lignes supprimées sont toujours prisent en compte
Debut = WorksheetFunction.CountA(Range(Range("a1"), Range("a65536")))
'MsgBox (Debut)
' la récup
Dim selectedFiles As Variant

selectedFiles = Application.GetOpenFilename(, , , , True)
nbfil = UBound(selectedFiles, 1)
'MsgBox (nbfil)

For i = 1 To nbfil
ActiveSheet.Range("A" & Debut + i).Value = selectedFiles(i)

Next i

End Sub









Bonjour

Dans un dossier ( Clients ), j'ai 3000 sous dossiers ( Alfred, Amine,
Bertrand,... )

Je souhaite obtenir de l'aide pour créer une macro qui me permette de
reprendre
à travers une boucle de type For next ou For each next
le nom des sous dossiers du dossier Clients dans une feuille Excel
Ex : C1 : Alfred
C2 : Amine,...

Merci


Avatar
charabeuh
Bonjour,

Essaye cette macro:

Sub Liste_Clients()

'Le chemin du dossier client : c:ma sociétéclients
'Le classeur où doit être insérée la liste : Classeur2.xls
'bien respecter le nombre de guillemet

Shell ("cmd /c ""dir ""c:ma sociétéclients"" /ad /b /on > ""c:ma
sociétéclientstototo.txt""""")

'listage des répertoires de c:ma sociétéclients dans le fichier texte
"tototo.txt"

Workbooks.OpenText Filename:="C:Ma SociétéClientstototo.txt",
Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse, Comma:=
_
False, Space:úlse, Other:úlse, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True

'selection des noms de répertoire et copie
Selection.CurrentRegion.Select
Selection.Copy

'sélection du classeur destination, de la cellule C1 et collage des noms de
répertoire
Windows("Classeur2.xls").Activate
Range("C1").Select
ActiveSheet.Paste

'fermeture du fichier "tototo.txt"
Windows("tototo.txt").Activate
ActiveWindow.Close

Windows("Classeur2.xls").Activate

End Sub




"erwann67" a écrit dans le message de
news:
Bonjour

Dans un dossier ( Clients ), j'ai 3000 sous dossiers ( Alfred, Amine,
Bertrand,... )

Je souhaite obtenir de l'aide pour créer une macro qui me permette de
reprendre
à travers une boucle de type For next ou For each next
le nom des sous dossiers du dossier Clients dans une feuille Excel
Ex : C1 : Alfred
C2 : Amine,...

Merci