OVH Cloud OVH Cloud

liste du contenu d'un dossier

10 réponses
Avatar
alan
Bonjour,

J'aurais voulu savoir si il était possible de créer une liste dans excel des
différents fichiers présents dans un dossier.
J'ai une centaine de fichier pdf dans un dossier dons j'aimerais faire la
liste dans excel.
Je rajoute régulièrement de nouveaux fichiers et j'aimerais rendre cette
liste consultable sur internet via copier/coller d'excel dans frontpage.

Merci d'avance

ps: si il existe un autre moyen avec un autre programme faites le moi savoir

10 réponses

Avatar
Daniel
Bonjour.
Essaie :
Sub test2()
Dim NomFichier As String
Range("A1").Select
NomFichier = Dir("E:DonneesDaniel*.pdf")
Do While NomFichier <> ""
ActiveCell = NomFichier
ActiveCell.Offset(1, 0).Select
NomFichier = Dir
Loop
End Sub
En changeant le chemin.
NB. Les sous dossiers ne sont pas examinés.
Cordialement.
Daniel
"alan" a écrit dans le message de news:
ePRcEix%
Bonjour,

J'aurais voulu savoir si il était possible de créer une liste dans excel
des différents fichiers présents dans un dossier.
J'ai une centaine de fichier pdf dans un dossier dons j'aimerais faire la
liste dans excel.
Je rajoute régulièrement de nouveaux fichiers et j'aimerais rendre cette
liste consultable sur internet via copier/coller d'excel dans frontpage.

Merci d'avance

ps: si il existe un autre moyen avec un autre programme faites le moi
savoir



Avatar
Vincnet.
Bonjour,
J'ai adapté d'une macro trouvée sur excelabo (de mémoire) comme suit :

Dans un module que j'ai appelé 'Dossiers' , j'ai le code suivant :
Public Racine As String
Sub lance()
Dim spec As String
With ThisWorkbook.Worksheets("Feuil1")
spec = GetDirectory
Racine = spec
If spec = "" Then: Err.Clear: Exit Sub
.Cells.ClearContents
.[A1] = "Dossiers (à partir de la racine : """ & spec & """)"
.[B1] = "Fichiers"
.[C1] = "Date de création"
.[D1] = "Date de dernière modification"
.[E1] = "Date de dernier accès"

arbo spec
.Copy

End With
ActiveWorkbook.Worksheets("Feuil1").Shapes(1).Delete
Find
ActiveWorkbook.SaveAs BPFileName = ThisWorkbook.path & "Liste des
fichiers.xls"
ThisWorkbook.Worksheets("Feuil1").Cells.ClearContents
ThisWorkbook.Close False
End Sub

Sub arbo(specdossier As String)
On Error Resume Next
Dim fs, f, fc, sf As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
If Err.Number <> 0 Then
MsgBox "Le dossier saisi n'est pas un nom de dossier valide !",
vbOKOnly, _
"ERREUR FATALE"
Exit Sub
End If
Set fc = f.Files
With ThisWorkbook.Worksheets("Feuil1")
For Each f1 In fc
If .[A2] = "" Then
.[F2] = f1.DocumentProperties.Item(1).Value
.[E2] = f1.DateLastAccessed
.[D2] = f1.DateLastModified
.[C2] = f1.DateCreated
.[B2] = f1.Name
.[A2] = "..." & Replace(specdossier, Racine, "")
Else
.Range("A1").End(xlDown).Range("E2").Value = f1.DateLastAccessed
.Range("A1").End(xlDown).Range("D2").Value = f1.DateLastModified
.Range("A1").End(xlDown).Range("C2").Value = f1.DateCreated
.Range("A1").End(xlDown).Range("B2").Value = f1.Name
.Range("A1").End(xlDown).Range("A2").Value = "..." &
Replace(specdossier, Racine, "")
End If
Next
Set sf = f.subfolders
For Each f1 In sf
arbo specdossier & "" & f1.Name
Next
End With
End Sub

et dans un module 'APIs', le code :
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Choisissez le dossier à analyser."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Dossier = GetDirectory & ""
Else
GetDirectory = ""
End If
End Function

Ca liste les fichiers en incluant les sou-dossiers et en précisant la
dernière date d'accès, d'enregistrement, de création, l'auteur, etc.

--
A+

V.



Bonjour,

J'aurais voulu savoir si il était possible de créer une liste dans excel des
différents fichiers présents dans un dossier.
J'ai une centaine de fichier pdf dans un dossier dons j'aimerais faire la
liste dans excel.
Je rajoute régulièrement de nouveaux fichiers et j'aimerais rendre cette
liste consultable sur internet via copier/coller d'excel dans frontpage.

Merci d'avance

ps: si il existe un autre moyen avec un autre programme faites le moi savoir





Avatar
alan
Dans un module que j'ai appelé 'Dossiers' , j'ai le code suivant :


Bonjour,

Merci pour ta réponse, mais étant assez nul en excel, peux tu m'expliquer
comment créer un module "dossier"?
a+

Avatar
alan
Bonjour,
Quand tu me dis > Essaie :....,

Comment faire cette opération et où?
Je suis assez nul en excel.

Merci


"Daniel" a écrit dans le message de news:
%230O8$wx%
Bonjour.
Essaie :
Sub test2()
Dim NomFichier As String
Range("A1").Select
NomFichier = Dir("E:DonneesDaniel*.pdf")
Do While NomFichier <> ""
ActiveCell = NomFichier
ActiveCell.Offset(1, 0).Select
NomFichier = Dir
Loop
End Sub
En changeant le chemin.
NB. Les sous dossiers ne sont pas examinés.
Cordialement.
Daniel
"alan" a écrit dans le message de news:
ePRcEix%
Bonjour,

J'aurais voulu savoir si il était possible de créer une liste dans excel
des différents fichiers présents dans un dossier.
J'ai une centaine de fichier pdf dans un dossier dons j'aimerais faire la
liste dans excel.
Je rajoute régulièrement de nouveaux fichiers et j'aimerais rendre cette
liste consultable sur internet via copier/coller d'excel dans frontpage.

Merci d'avance

ps: si il existe un autre moyen avec un autre programme faites le moi
savoir







Avatar
JB
Bonjour,

Voici un exemple en PJ

http://cjoint.com/?mjw7NskJpz

Alt+F11 pour voir le module

Sub modif_jour()
Application.ScreenUpdating = False
Range("a2:d10000").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)
ActiveCell.Offset(1, 0).Select
nf = Dir
Loop
Range("A2").Select
End Sub


Cordialement JB
Avatar
alan
Bonjour,

J'essaye, mais lorsque je selectionne le dossier, rien ne se passe...
La fenetre de selection se referme et rien ne se met dans le tableau.

Merci
"JB" a écrit dans le message de news:

Bonjour,

Voici un exemple en PJ

http://cjoint.com/?mjw7NskJpz

Alt+F11 pour voir le module

Sub modif_jour()
Application.ScreenUpdating = False
Range("a2:d10000").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)
ActiveCell.Offset(1, 0).Select
nf = Dir
Loop
Range("A2").Select
End Sub


Cordialement JB



Avatar
JB
Bonjour,

Version sans choix du dossier:

http://cjoint.com/?mksvRAsI3w

JB
Avatar
alan
Bonjour,

Cela fonctionne, mais il me donne la liste des fichiers présent dans un
dossier appelé divers.
Pourquoi et comment lister un autre dossier?
De plus, il me donne la liste des fichiers .xls et non pdf
Merci pour ta patience.
"JB" a écrit dans le message de news:

Bonjour,

Version sans choix du dossier:

http://cjoint.com/?mksvRAsI3w

JB



Avatar
alan
Re,

Correction, j'ai trouvé comment selectionner le dossier,
et je croyais aussi avoir trouvé pour les pdf...
Mais quand je modifie la ligne: nf = Dir("*.xls")en pdf,
je n'ai aucun résultats.

Encore merci
"JB" a écrit dans le message de news:

Bonjour,

Version sans choix du dossier:

http://cjoint.com/?mksvRAsI3w

JB



Avatar
alan
Boojour,

Décidément, je veux aller trop vite aujourd'hui..
Ca fonctionne :-)
Mais j'aurrais voulu un petit "bonus" si c'est possible: Est il possible en
faisant la liste de créer des lien hypertexte dans cette même liste, qui
ouvrent les différents fichiers?
"alan" a écrit dans le message de news:
OS5AbW9$
Re,

Correction, j'ai trouvé comment selectionner le dossier,
et je croyais aussi avoir trouvé pour les pdf...
Mais quand je modifie la ligne: nf = Dir("*.xls")en pdf,
je n'ai aucun résultats.

Encore merci
"JB" a écrit dans le message de news:

Bonjour,

Version sans choix du dossier:

http://cjoint.com/?mksvRAsI3w

JB