Sub Macro1()
Dim OB As Worksheet 'déclare la variable OB (Onglet Base)
Dim OA As Worksheet 'déclare la variable OA (Onglet Affichage)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set OB = Worksheets("Feuil1") 'définit l'onglet de la base OB (à adapter à ton cas)
Set OA = Worksheets("Feuil2") 'définit l'onglet d'affichage OA (à adapter à ton cas)
TV = OB.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
BE = InputBox("Taper le texte recherché.", "RECHERCHE") 'définit la boîte d'entrée BE
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée + [OK], sort de la procédure
OA.Cells.ClearContents 'efface le contenu de toutes les cellules de l'onglet OA
OA.Range("A1").Resize(1, UBound(TV, 2)).Value = Application.Index(TV, 1) 'renvoie dans la cellule A1 redimensionnée la première ligne du tableau TV (facultatif)
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau TV (en partant de la seconde)
For J = 1 To UBound(TV, 2) 'boucle 2 : sur toutes les colonnes J du tableau TV
If InStr(1, TV(I, J), BE, vbTextCompare) <> 0 Then 'condition : si le texte de BE est contenu dans la données ligne I colonne J de TV
Set dest = OA.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST (première cellule vide de la colonne A de l'onglet OA)
dest.Resize(1, UBound(TV, 2)).Value = Application.Index(TV, I) 'renvoie dans DEST redimensionnée la ligne I du tableau des valeurs TV
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
OA.Activate 'active l'onglet d'affchage OA
End Sub