VBA : Lister les fichier d'un dossier sans leur extensions

Nicko29

XLDnaute Nouveau
Bonjour,

j'ai fait un petit code me permet dans de lister les fichiers d'un dossier.
Mais j'aimerais les lister mais sans leur extensions et là je bloque.

J'ai fait quelques recherches sur le forum sans trouver mon bonheur.
J'ai un peu de mal avec
Code:
 Fichier.name
Quelqu'un pourrait-il me mettre sur la voie ?
Merci !

Code:
Private Sub CommandButton1_Click()
Dim Dossier As Object, Fichier As Object
Dim Chemin As String
Dim I As Long
Columns("B:B").Select
Selection.ClearContents
'Chemin du dossier à analyser (à adapter au besoin)
'Chemin = "G:\film"
Chemin = ThisWorkbook.Path
'Définition de la variable
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
' Boucle sur les fichiers

For Each Fichier In Dossier.Files

I = I + 1
Cells(I, 2) = Fichier.Name ' Nom du fichier

Next
End Sub
 

Nicko29

XLDnaute Nouveau
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour Pierrot93 et Pierrejean,

c'est tout à fait çà, et j'avais pas vu cela comme çà !

vous sélectionnez la chaine de caractère et vous enlevez l'extension.

Ok Merci beaucoup à vous deux

Nicko !
 

Nicko29

XLDnaute Nouveau
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour,

je reviens vers vous j'au du mal à adapter mon code, en effet j'ai modifié mon code pour chercher dans les répertoire courant ou est situé le fichier , mais aussi dans les sous-dossiers.

Maintenant du j'aurais besoin d'aller plus loin et de descendre encore de 3 niveaux et la je bloque, voici mon code :

Code:
Private Sub CommandButton1_Click()
Dim Dossier As Object, Fichier As Object, Sousdossier As Object
Dim Chemin As String
Dim I As Long

d = Range("B65536").End(xlUp).Row
Set plageE = Range("B1:B" & d)
plageE.ClearContents
'Chemin du dossier à analyser (à adapter au besoin)

Chemin = ThisWorkbook.Path
'Définition de la variable
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
' Boucle sur les fichiers

For Each Fichier In Dossier.Files

I = I + 1
'Cells(I, 2) = Fichier.Name ' Nom du fichier
Cells(I, 2) = Mid(Fichier.Name, 1, InStrRev(Fichier.Name, ".") - 1)
Next

For Each Sousdossier In Dossier.subfolders
For Each Fichier In Sousdossier.Files
I = I + 1
Cells(I, 2) = Mid(Fichier.Name, 1, InStrRev(Fichier.Name, ".") - 1)
Next
Next
SupprimerLignesDoublons
Range("B1").Select
End Sub


J'ai voulu reprendre les boucles " For Each " et les répétter dans les sous dossiers des sous dossiers , mais cela marche pas bien ..
Merci pour vos futurs conseils !
 

job75

XLDnaute Barbatruc
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour Nicko29, salut Pierrot, pierrejean :)

FileSearch est vraiment très commode, mais n'existe malheureusement plus à partir d'Excel 2007.

Donc si vous êtes sous 2003, voyez cette macro :

Code:
Sub recherche()
Dim i, fichier$
[B:B].ClearContents 'plage de restitution
With Application.FileSearch
  .LookIn = ThisWorkbook.Path 'à adapter
  .SearchSubFolders = True 'recherche aussi dans les sous-dossiers
  .FileType = msoFileTypeExcelWorkbooks 'msoFileTypeAllFiles
  If .Execute() Then
    For i = 1 To .FoundFiles.Count
      fichier = Dir(.FoundFiles(i))
      Cells(i, 2) = Mid(fichier, 1, InStrRev(fichier, ".") - 1)
    Next
    MsgBox .FoundFiles.Count & " fichiers trouvés" 'facultatif
  End If
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Re, salut David, kiki29,

Pour le nom du fichier sans extension, on peut aussi utiliser la méthode GetBaseName :

Code:
Sub Recherche()
Dim fso As Object, i
[B:B].ClearContents 'plage de restitution
Set fso = CreateObject("Scripting.FileSystemObject")
With Application.FileSearch
  .LookIn = ThisWorkbook.Path 'à adapter
  .SearchSubFolders = True 'recherche aussi dans les sous-dossiers
  .FileType = msoFileTypeExcelWorkbooks 'msoFileTypeAllFiles
  If .Execute() Then
    For i = 1 To .FoundFiles.Count
      Cells(i, 2) = fso.GetBaseName(.FoundFiles(i))
    Next
    MsgBox .FoundFiles.Count & " fichiers trouvés" 'facultatif
  End If
End With
Set fso = Nothing
End Sub
A+
 

MJ13

XLDnaute Barbatruc
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour à tous

Sion, mon petit Utilitaire que j'adore :eek:, il te fait la liste de tes fichiers d'un dossier et de ses sous-dosisers (difficulté niv 3), cela doit être assez facile à retirer l'extension :).

Voir Message suivant pour le fichier.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour à tous

Voici, en reprenant le code de mon utilitaire, pour générer la liste des fichiers d'un dossier et de ses sous-dossiers :):

Ensuite pour ne pas avoir les extensions, cela ne doit pas être très compliqué, mais à quoi cela sert :confused:
 

Pièces jointes

  • Dir_Dossier.xls
    44 KB · Affichages: 977

Nicko29

XLDnaute Nouveau
Re : VBA : Lister les fichier d'un dossier sans leur extensions

Bonjour,

et merci à job75 j'avoue ne pas avoir trop regardé du coté de FileSearch, merci à kiki29 et david84 je garde précieusement les liens.

Pour répondre à ta question MJ 13, je ne veux pas avoir les extensions pour récupérer des noms de fichiers identiques ( lorsque j'ai le même fichiers en xls et en pdf) et d'éliminer les doublons, afin de comptabiliser une seule fois une fichier, alors qu'il apparait 2 fois avec 2 extensions différentes.
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16