'Sub Traitement()
Private Sub TextBox1_AfterUpdate()
Dim sb2 As Worksheet, Ligne, ligne2, i As Long
Set sb2 = ThisWorkbook.Sheets("nominativo") ' feuille des codes
With sb2
On Error Resume Next ' au cas où le code est absent, Match renvoie une erreur
If IsNumeric(TextBox1) Then
Ligne = Application.Match(Val(TextBox1), sb2.Range("a:a"), 0) 'recherche du code en nombre
' ligne2 = Application.Match(CStr(TextBox1), sb2.Range("a:a"), 0) 'recherche du code en texte
On Error GoTo 0 ' on rétablit la détection d'erreur
' If IsError(Ligne) And IsError(ligne2) Then 'modificato
If IsError(Ligne) Then
' les deux recherches n'ont pas trouvé le code
MsgBox "<" & TextBox1 & "> : ce code est absent de la liste des codes de la feuille " & sb2.Name, vbCritical
TextBox1 = "": TextBox2 = "": Exit Sub
End If
' Au moins une recherche a trouvé le code
' Si Ligne est une erreur, c'est le code se trouve en Ligne1
' c'est Ligne qui contiendra la ligne du code
' If IsError(Ligne) Then Ligne = ligne2
TextBox2 = .Cells(Ligne, 2) 'affichage du nom correspondnat au code
If MsgBox("confermi nominativo", vbYesNo) = vbYes Then
UserForm1.TextBox32 = .Cells(Ligne, 1) 'Affichage du code dans Userform1
' Comme vous avez très bien numéroté à la suite et dans l'ordre des colonnes
' les TextBox de la feuille ""nomonativo",
' on peut utiliser une boucle pour remplir les TextBox de Userform1
For i = 1 To 12: UserForm1.Controls("TextBox" & i) = .Cells(Ligne, i + 1): Next
TextBox1 = "": TextBox2 = ""
UserForm1.Show
Else
TextBox1 = "": TextBox2 = ""
TextBox1.SetFocus
End If
Else
UserForm4.Show
End If
End With
End Sub