Lister un répertoire sans les chemins

rabiet

XLDnaute Nouveau
Bonjour,

j'utilise le code suivant pour lister le contenu d'un répertoire :

Sub ListFichiers()

Set fs = Application.FileSearch
With fs
.NewSearch
.SearchSubFolders = False
.LookIn = "D:\Mes documents\excel" '<- Chemin du répertoire
.FileType = msoFileTypeAllFiles
.Execute

For i = 1 To .FoundFiles.Count '<- Ecrit dans la feuille active
Range("A1").Offset(i, 0).Value = .FoundFiles(i)

Next i

End With

End Sub

======

Ce qui donne : D:\Mes documents\excel\Classeur1.xls, ...

Je souhaiterais à faire la même chose mais sans l'indication du chemin, et (éventuellement) sans indication de l'extension ".xls"

D'avance merci si qqn voit comment faire.

@+

Chr.
 

RENAUDER

Nous a quitté
Repose en paix
Re : Lister un répertoire sans les chemins

Bonjour,
Testes ceci
Code:
Dim NameSansExtension As String
Sub ListFichiers()
Dim NomFichier As String
    Set fs = Application.FileSearch
    With fs
        .NewSearch
        .SearchSubFolders = False
        .LookIn = "C:\excel"    '<- Chemin du répertoire
        .FileType = msoFileTypeAllFiles
        .Execute
        For I = 1 To .FoundFiles.Count    '<- Ecrit dans la feuille active
        ShortFilename (.FoundFiles(I))
            Range("A1").Offset(I, 0).Value = NameSansExtension 
        Next I
    End With
End Sub
Function ShortFilename(LongFilename As String) As String
    For I = Len(LongFilename) To 1 Step -1
        If Mid(LongFilename, I, 1) = "\" Then Exit For
    Next
    ShortFilename = Mid(LongFilename, I + 1, Len(LongFilename))
    NameSansExtension = Mid(ShortFilename, 1, Len(ShortFilename) - 4)
End Function
 

Pierrot93

XLDnaute Barbatruc
Re : Lister un répertoire sans les chemins

Bonsoir Rablet, Eric

une autre solution :

Code:
For i = 1 To .FoundFiles.Count '<- Ecrit dans la feuille active
t = Split(.FoundFiles(i), "\")
Range("A1").Offset(i, 0).Value = Split(t(UBound(t)), ".")(0)
Next i

"t" étant déclarée en début de procédure comme suit :

Code:
Dim t

bonne soirée
@+
 

Staple1600

XLDnaute Barbatruc
Re : Lister un répertoire sans les chemins

Bonsoir à tous

Une autres solution (mais un brin lourdingue) ;)
VB:
Sub ListFichiers()
Set fs = Application.FileSearch
With fs
.NewSearch
.SearchSubFolders = False
.LookIn = "D:\Mes documents\excel" '<- Chemin du répertoire
.FileType = msoFileTypeAllFiles
'.[B]FileType = msoFileTypeExcelWorkbooks 
'décommentez  cette ligne pour chercher uniquement des documents Excel[/B]
.Execute

For i = 1 To .FoundFiles.Count '<- Ecrit dans la feuille active
Range("A1").Offset(i, 0).Value =  _
 StrReverse(Left(StrReverse(.FoundFiles(i)), _
InStr(StrReverse(.FoundFiles(i)), "\") - 1))

Next i
End With
End Sub


EDITION: En plus court
VB:
Sub ListFichiers()
Dim x
Dim xx
Dim i As Integer
....debut du code
x = StrReverse(.FoundFiles(i))
xx = StrReverse(Left(x, InStr(x, "\") - 1))
Cells(i, 1) = Left(xx, Len(xx) - 4)
... fin du code
End Sub
 
Dernière édition:

MichelXld

XLDnaute Barbatruc
Re : Lister un répertoire sans les chemins

bonsoir


Tu peux aussi utiliser les spécificités de la fonction Dir:

Code:
Dim strNom As String
'
For i = 1 To .FoundFiles.Count
    strNom = .FoundFiles(i)
    Range("A1").Offset(i, 0).Value = _
               Left(Dir(strNom), Len(Dir(strNom)) - 4)
Next i


Bonne soirée
MichelXld
 

rabiet

XLDnaute Nouveau
Re : Lister un répertoire sans les chemins

Merci à tous pour vos réponses.
Vraiment super XLD. Les patrons devrait vous sponsoriser.
J'étais en déplacement aujourd'hui... je reviens... et hop ! mon boulot est fait :)
@+
Chr.
 

Statistiques des forums

Discussions
312 836
Messages
2 092 656
Membres
105 480
dernier inscrit
Galbius