Mets tous les fichiers csv dans un même dossier (voire également en sous-dossiers)
et inscris le nom recheché dans la cellule A1 du fichier joint.
Fais surtout la recherche dans les fichiers csv (2Go) et non xlsx, ce sera plus rapide.
Ce ne sera pas très long in fine.
Option Explicit
Dim ligne As Long, Recherche As String
Sub importer()
Dim chemin$, Rep As FileDialog
' choix du répertoire
Set Rep = Application.FileDialog(msoFileDialogFolderPicker)
Application.FileDialog(msoFileDialogFolderPicker).Title = "Choix du répertoire des fichiers ..."
Rep.Show
If Rep.SelectedItems.Count = 0 Then Exit Sub
chemin = Rep.SelectedItems(1) & "\"
' effacement données
Range("A1").CurrentRegion.Offset(1, 1).ClearContents
' lecture
ligne = 2
Recherche = Cells(1, 1)
lire chemin
End Sub
Sub lire(chemin As String)
Dim fso, SourceFolder, SubFolder
Dim fichier$, ContenuLigne$
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(chemin)
fichier = Dir(chemin)
Do While fichier <> ""
Open chemin & fichier For Input As #1
Do While Not EOF(1)
Line Input #1, ContenuLigne
If ContenuLigne Like "*" & Recherche & "*" Then
Cells(ligne, 1) = ContenuLigne
ligne = ligne + 1
End If
Loop
Close #1
fichier = Dir
Loop
For Each SubFolder In SourceFolder.subfolders
lire SubFolder.Path & "\"
Next SubFolder
End Sub