Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'affiche dans une feuille Excel la liste de tout mes fichiers .xls contenu dans un répertoire de mon PC.
Maintenant j'aimerais que via une Liste déroulante, cela m'affiche seulement les fichiers portant une partie du mot contenu dans cette liste déroulante.
C'est à dire par exemple :
Dans mon répertoire j'ai un fichier fraise_des_bois.xls, fraise.xls, banane_flambe.xls, banane_coupe.xls, pomme.xls.
Dans mon fichier Excel (celui avec la liste) j'ai dans ma liste déroulante "fraise", "pomme", "banane"...
Quand je choisi par exemple "fraise" celà m'affiche fraise.xsl et fraise_des_bois.xsl, si je choisi "banane" celà m'affichera les 2 fichiers contenant le mot banane, etc...
Comment réaliser la chose ? 😕
Je met le bout de code me permettant d'afficher la liste de tout les fichiers du repertoire au cas où 😉
Code:
Sub ListFilesInFolder(strFolderName As String, bIncludeSubfolders As Boolean)
'Activer la reference Microsoft Scripting RunTime
Static FSO As FileSystemObject
Dim oSourceFolder As Scripting.Folder
Dim oSubFolder As Scripting.Folder
Dim oFile As Scripting.File
Static wksDest As Worksheet
Static iRow As Long
Static bNotFirstTime As Boolean
[A1:A100].ClearContents
iRow = 2
If Not bNotFirstTime Then
Set wksDest = ActiveSheet
Set FSO = CreateObject("Scripting.FileSystemObject")
bNotFirstTime = True
End If
Set oSourceFolder = FSO.GetFolder(strFolderName)
For Each oFile In oSourceFolder.Files
wksDest.Cells(iRow, 1) = oFile.Name
iRow = iRow + 1
Next oFile
Sub Chemin()
ListFilesInFolder "C:\MesFichiers", True
End Sub
Re : Afficher un fichier excel selon la valeur d'une Listbox
Bonjour,
En ayant une liste de validation dans la cellule F1 par exemple
Code:
Sub ListFilesInFolder(strFolderName As String, bIncludeSubfolders As Boolean)
'Activer la reference Microsoft Scripting RunTime
Static FSO As FileSystemObject
Dim oSourceFolder As Scripting.Folder
Dim oSubFolder As Scripting.Folder
Dim oFile As Scripting.File
Static wksDest As Worksheet
Static iRow As Long
Static bNotFirstTime As Boolean
[A1:A100].ClearContents
iRow = 2
If Not bNotFirstTime Then
Set wksDest = ActiveSheet
Set FSO = CreateObject("Scripting.FileSystemObject")
bNotFirstTime = True
End If
Comp = wksDest.Range("F1")
Set oSourceFolder = FSO.GetFolder(strFolderName)
For Each oFile In oSourceFolder.Files
If oFile.Name Like "*" & Comp & "*" Then
wksDest.Cells(iRow, 1) = oFile.Name
iRow = iRow + 1
End If
Next oFile
End Sub
Sub Chemin()
ListFilesInFolder "C:\MesFichiers", True
End Sub
Et dans le module de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$1" And Target <> "" Then Chemin
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD