Une proposition qui tient compte de ce qui est entré au clavier et insensible à la casse.
Private Sub Txt_recherche_Change()
Dim nbLignes As Long, i As Long
ListBox1.Clear
nbLignes = WorksheetFunction.CountA(Sheets("Temp").Range("D:D"))
If Txt_recherche.Text <> "" Then
For i = 2 To nbLignes
If LCase(Sheets("Temp").Cells(i, 4)) Like LCase(Txt_recherche.Text & "*") Then ListBox1.AddItem Sheets("Temp").Cells(i, 4)
Next i
End If
End Sub