Lister contenu dossier dans excel (VBA)
Neliville51
Messages postés
99
Statut
Membre
-
Neliville51 Messages postés 99 Statut Membre -
Neliville51 Messages postés 99 Statut Membre -
Bonjour tout le monde,
Voilà je suis débutant en VBA excel. Je voudrais savoir s'il existe un code qui permet de me lister le nom des fichiers contenu dans un dossier spécifique de mon disque dur selon des critères définis dans une feuille excel? Par exemple tous les fichiers ayant pour première lettre P ou I ou O etc...
Merci pour ceux ou celles qui savent et qui pourront m'éclairer.0
A bientôt
--
Il ne suffit pas d'engranger les récoltes du savoir, du savoir-faire, ni de vendanger les fruits du savoir-être et du savoir-devenir, encore faut il accepter de les offrir pour s'agrandir ensemble.
[Jacques Salomé]
Voilà je suis débutant en VBA excel. Je voudrais savoir s'il existe un code qui permet de me lister le nom des fichiers contenu dans un dossier spécifique de mon disque dur selon des critères définis dans une feuille excel? Par exemple tous les fichiers ayant pour première lettre P ou I ou O etc...
Merci pour ceux ou celles qui savent et qui pourront m'éclairer.0
A bientôt
--
Il ne suffit pas d'engranger les récoltes du savoir, du savoir-faire, ni de vendanger les fruits du savoir-être et du savoir-devenir, encore faut il accepter de les offrir pour s'agrandir ensemble.
[Jacques Salomé]
1 réponse
-
Bonjour,
Je n'ai pas compris si la liste des fichiers était sur une feuille Excel ou s'il fallait copier les noms des fichier dans une feuille Excel. Ici c'est la deuxième option que j'ai pris:
Nécessite d'activer la référence Microsoft Scripting Runtime
Menu > Outils > Références ... > cocher Microsoft Scripting Runtime
Sub ListeFichier() Dim oFso As FileSystemObject Dim oFolder As folder Set oFso = New FileSystemObject Set oFolder = fso.GetFolder("D:\Temp") 'Indiquer ici le chemin du repétoire à scanner scan oFolder End Sub Public Sub scan(ByVal dossier As folder) Dim oFile As file Dim oCollec As Collection Dim i As Long Dim lig As Long Dim nomFichier As String Set oCollec = New Collection lig = 2 'On parcours le répertoire pour récupérer tous les fichiers For Each oFile In dossier.Files oCollec.Add oFile Next 'Il est également possible de parcourir les sous dossiers 'Dim oSubFolder As Folder ' For Each oSubFolder In dossier.SubFolders ' scan oSubFolder ' Next For i = 1 To oCollec.Count nomFichier = ReturnFileName(oCollec(i)) If UCase(Mid(nomFichier, 1, 1)) = "A" Or UCase(Mid(nomFichier, 1, 1)) = "L" Or UCase(Mid(nomFichier, 1, 1)) = "M" Then Worksheets(1).Range("A" & lig).Value = nomFichier lig = lig + 1 End If Next i End Sub 'On Extrait le nom du fichier du chemin complet Public Function ReturnFileName(ByVal sChemin As String) As String If InStr(sChemin, "\") = 0 Or Right(sChemin, 1) = "\" Then ReturnFileName = "" Exit Function End If ReturnFileName = Mid(sChemin, InStrRev(sChemin, "\") + 1) End Function
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau-
-
-
-
-
Il y a une erreur ici
Set oFolder = fso.GetFolder("D:\Temp")
il faut mettre
Set oFolder = oFso.GetFolder("D:\Temp")
Ensuite il faut aussi modifier cette ligne :
If UCase(Mid(nomFichier, 1, 1)) = "A" Or UCase(Mid(nomFichier, 1, 1)) = "L" Or UCase(Mid(nomFichier, 1, 1)) = "M" Then
En mettant à la place de "A", "L" et "M" les initiales que tu veux tester.
J'ai laissé celles que j'ai utilisé pour mon test.
-