Bonsoir Thumb down,
Tu as raison avec ta procédure ça fonctionne, mais je ne m’explique pas pourquoi cela ne fonctionne pas avec une variable "Public" ???
Petite correction :
NomFich = Dir("" & choix_dossier & "\", vbNormal)
Dans la même veine comment récupérer la variable de l’item sélectionné dans la ListBox "ListFich" :

Pour l’utiliser dans les procédures suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Public Sub Lister()
Dim sRepPrinc As String
Dim iDerLig As Integer
Set moFSO = New FileSystemObject
sRepPrinc = choix_dossier()
If sRepPrinc = "" Then
Exit Sub
End If
msRepPrinc = sRepPrinc
'RAZ
iDerLig = Range("A" & Rows.Count).End(xlUp).Row
If iDerLig >= 2 Then
Rows("2:" & iDerLig).Delete
End If
'liste récursive
ListeFichiers sRepPrinc, 1
MsgBox "Terminé !", vbExclamation
Set moFSO = Nothing
Columns("A:E").EntireColumn.AutoFit
Range("A2").Activate
End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Private Sub ListeFichiers(psRep As String, piNiveau As Integer)
Dim iLig As Integer
Dim oFic As File
Dim oRep As Folder
'fichiers
For Each oFic In moFSO.GetFolder(psRep).Files
If Split(oFic, ".")(1) = "xlsm" Then 'ici pour filtrer tous les fichiers suivant choix "Liste extensions"
iLig = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & iLig).Value = psRep
Range("B" & iLig).Value = oFic.Name
Range("C" & iLig).Value = oFic.DateCreated
Range("D" & iLig).Value = oFic.DateLastModified
Range("E" & iLig).Value = oFic.Size
End If
Next oFic
'sous-répertoires
For Each oRep In moFSO.GetFolder(psRep).SubFolders
ListeFichiers oRep.Path, piNiveau + 1
Next oRep
End Sub |
@+
Partager