Bonjour,
Peut-être ainsi :
Private Sub UserForm_Initialize()
Dim recherche As String, i As Long
TextBox2.Value = UserForm2.TextBox16.Text
On Error Resume Next
With Sheets("base clients")
i = WorksheetFunction.Match(TextBox2.Value, .Range("E2:E50000"), 0)
If Err.Number <> 0 Then
Err.Clear: recherche = "0"
Else
recherche = .Range("M" & i + 1)
End If
End With
TextBox1.Value = recherche
End Sub
Ou bien autrement :
Private Sub UserForm_Initialize()
Dim recherche As String, i As Long
TextBox2.Value = UserForm2.TextBox16.Text
recherche = "0"
With Sheets("base clients")
For i = 2 To 50000
If .Cells(i, 5) = TextBox2.Value Then
recherche = .Cells(i, 13): Exit For
End If
Next i
End With
TextBox1.Value = recherche
End Sub
Ou encore :
Private Sub UserForm_Initialize()
Dim recherche As String, c As Range
TextBox2.Value = UserForm2.TextBox16.Text
Set c = Sheets("base clients").Range("E2:E50000").Find(TextBox2.Value, , , xlWhole)
If Not c Is Nothing Then
recherche = c.Offset(, 8)
Else
recherche = "0"
End If
TextBox1.Value = recherche
End Sub