Sub Recherche()
Dim wbRecap As Workbook 'fichier recap
Dim wsRecap As Worksheet 'feuille où on écrit les données
Dim wbSource As Workbook 'fichier à ouvrir
Dim wsSource As Worksheet 'feuille où on cherche les données
Dim DernLign As Integer 'ligne où on écrit les données
Dim vFichiers As Variant 'noms des fichiers
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim m As Integer
Dim rgRecap As Range 'plage où on copie les données
Dim NomFichier As String 'Nom du fichier excel à ouvrir
Dim AdrFichier As String 'Adrese du fichier excel à ouvrir
Dim ExtFichier As String 'Extension du fichier excel à ouvrir
Dim NomFeuille As String 'Nom de la feuille à ouvrir
Dim NumLot As String 'Numéro de lot cherche
Set wbRecap = ThisWorkbook 'Fichier récapitulatif
Set wsRecap = wbRecap.Sheets(1) 'on écrit dans la feuille 1 du fichier récapitulatif
'Copie de tous les fichiers sources avant recherche des données
'Actions à réaliser tant que les lignes sont remplies
'Recherche au sein des onglets
k = Range("A" & Rows.Count).End(xlUp).Row 'récupère la dernière ligne remplie sur la colonne A
Set LotsAChercher = Range("B3").CurrentRegion 'on detecte automatiquement le tableau des Lots à chercher = equivalent d'un Ctrl+A après avoir sélectionné la cellule B3
NbLots = LotsAChercher.Rows.Count - 1 'donne le nombre de lots à chercher
For i = 1 To NbLots 'Pour chaque lot
NumLot = LotsAChercher.Item(i + 1) 'Récupération du numero de lot
For Each Ws In Worksheets 'pour chaque feuille
If Ws.Name <> "Recherche" Then 'si c'est pas la feuille de recherche
With Ws
Set trouve = .Cells.Find(NumLot, LookIn:=xlValues, LookAt:=xlWhole) 'on cherche le numéro de lot
If Not trouve Is Nothing Then
trouve.Resize(1, 4).Copy Destination:=ActiveSheet.Range("D" & Rows.Count).End(xlUp).Offset(1, 0) 'on copie colle directement la ligne dans la feuille Recherche
ActiveSheet.Range("H" & Rows.Count).End(xlUp).Offset(1, 0) = Ws.Name 'on place le nom de la feuille en colonne H
End If
End With
End If
Next Ws
j = j + 1
Next i
End Sub