Autres [XL 2007] VBA listage répertoire Nom fichier, Date, Taille

kif

XLDnaute Occasionnel
Bonjour La Team

Avez vous SVP un exemple de code qui permets de lister un sous répertoire (fixe) de mon workbook, me permettant de recuperer à partir de la cellule C15 la liste des fichiers présents avec leur taille et date de création ?

... de mon workbook, le sous répertoire fixe sera toujours /2-Client/

Merci d'avance de votre support

Salutations

Franck
 

kif

XLDnaute Occasionnel
ce qui me donne une erreur "1004 "impossible de definir propriété NumberFormat de la classe Range"
sur l'instruction

.Cells(i, 3).NumberFormat = "#0.00" & IIf(.Cells(i, 3) < 1000, " KO", " MO")

Mais cela importe quand méme la liste :

(32062 Fwd FW PO 2124153.eml16/12/2021 09:00:05
5885​
HW-03034EAAA-MSD-03-00.pdf16/12/2021 09:00:08
1522.4​
HW-P3034EAAA-GERBER_01-00.zip16/12/2021 09:00:11
131.17​
HW-P3034EAAA-ODBJOB_01-00.tgz16/12/2021 09:00:14
598.37​
PO 2124153.PDF16/12/2021 09:00:161977.5
 

patricktoulon

XLDnaute Barbatruc
vraiment bizarre ton truc hein
voilà ce que c'est de modifier des parametres crutiaux dans excel 😅
on essaie CDbl au cas ou
VB:
Private Sub CommandButton1_Click()
    Dim T(), Rep$, sfilename$, dl&, n&
    Rep = ThisWorkbook.Path & "\2-Client"
    If Dir(Rep, vbDirectory) = "" Then MsgBox "Dossier inexistant", 16: Exit Sub
    sfilename = Dir(Rep & "\*.xls*")
    Do While sfilename <> ""
        n = n + 1: ReDim Preserve T(1 To 3, 1 To n)
        T(1, n) = sfilename
        T(2, n) = FileDateTime(Rep & "\" & sfilename)
        T(3, n) = CDbl(FileLen(Rep & "\" & sfilename) / 1000)
        sfilename = Dir
    Loop
    With Sheets("Index Docs").Range("C15")
        .CurrentRegion.ClearContents
        If n > 0 Then
            .Resize(n, 3) = Application.Transpose(T)
            For i = 1 To n
                .Resize(n, 3).Cells(i, 3).NumberFormat = "#0.00" & IIf(.Cells(i, 3) < 1000, " Ko", " Mo")
            Next
        End If
    End With
End Sub
 

kif

XLDnaute Occasionnel
Mince désolé, merguez que je suis! j'ai oublier un truc important du coup

A partir de ce code est il possible de lister aussi les sous répertoire ?


Private Sub CommandButton1_Click()
Dim T(), Rep$, sfilename$, dl&, n&
Rep = ThisWorkbook.Path & "\2-Client"
If Dir(Rep, vbDirectory) = "" Then MsgBox "Dossier inexistant", 16: Exit Sub
sfilename = Dir(Rep & "\*.**")
Do While sfilename <> ""
n = n + 1: ReDim Preserve T(1 To 3, 1 To n)
T(1, n) = sfilename
T(2, n) = FileDateTime(Rep & "\" & sfilename)
T(3, n) = CDbl(FileLen(Rep & "\" & sfilename) / 1000)
sfilename = Dir
Loop
With Sheets("Index Docs").Range("C15")
.CurrentRegion.ClearContents
If n > 0 Then
.Resize(n, 3) = Application.Transpose(T)
'For i = 1 To n
'.Resize(n, 3).Cells(i, 3).NumberFormat = "#0.00" & IIf(.Cells(i, 3) < 1000, " Ko", " Mo")
'Next
End If
End With
End Sub
 

kif

XLDnaute Occasionnel
Bien vu faute de frappe



Private Sub CommandButton1_Click()
Dim T(), Rep$, sfilename$, dl&, n&
Rep = ThisWorkbook.Path & "\2-Client"
If Dir(Rep, vbDirectory) = "" Then MsgBox "Dossier inexistant", 16: Exit Sub
sfilename = Dir(Rep & "\*.*")
Do While sfilename <> ""
n = n + 1: ReDim Preserve T(1 To 3, 1 To n)
T(1, n) = sfilename
T(2, n) = FileDateTime(Rep & "\" & sfilename)
T(3, n) = CDbl(FileLen(Rep & "\" & sfilename) / 1000)
sfilename = Dir
Loop
With Sheets("Index Docs").Range("C15")
.CurrentRegion.ClearContents
If n > 0 Then
.Resize(n, 3) = Application.Transpose(T)
'For i = 1 To n
'.Resize(n, 3).Cells(i, 3).NumberFormat = "#0.00" & IIf(.Cells(i, 3) < 1000, " Ko", " Mo")
'Next
End If
End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 375
Membres
102 876
dernier inscrit
BouteilleMan