J'avoue que je ne comprend pas.. Peut être égal à 0 alors? Tiens, dans le doute je t'ai modifié le code pour prendre en compte ce cas là. Et pour prendre en compte indifféremment les majuscules et les minuscules.
Sub rechercheMot()
'Déclaration de variables
Dim tabdata() As Variant
Dim Lgdata As Long
Dim i As Long, j As Long
Dim tabsortie() As String
Dim motCible As String
'Choix du mot a rechercher
motCible = InputBox("Entrez le mot à rechercher : ", "Recherche")
If motCible = "" Then Exit Sub
'recupération des data => ici tu peux changer le nom de la feuille et la lettre de la colonne
'Nombre de data
Lgdata = ThisWorkbook.Sheets("Récap manufacturing").Range("G65536").End(xlUp).Row
'data
tabdata = ThisWorkbook.Sheets("Récap manufacturing").Range("G1:G" & Lgdata).Value
'on boucle sur chaque donnée afin de voir si le mot cible y est.
For i = Lgdata To 1 Step -1
'Si le mot cible n'est pas trouvé on supprime la donnée
If InStr(UCase(tabdata(i, 1)), UCase(motCible)) = 0 Then
For j = i To Lgdata - 1
tabdata(j, 1) = tabdata(j + 1, 1)
Next j
tabdata(Lgdata, 1) = ""
Lgdata = Lgdata - 1
End If
Next i
'On colle le resultat colonne J => ici encore, tu peux adapter la colonne et le nom de feuille
If Lgdata <= 0 Then
MsgBox "Aucune occurence trouvée pour la recherche : " & motCible, vbInformation, "Aucun résultat"
Else
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Récap manufacturing").Range("J1:J" & Lgdata).Value = tabdata
Application.ScreenUpdating = True
End If
End Sub
Voilà, teste dans les même conditions que tout à l'heure, ça devrait fonctionner correctement maintenant!