Bonjour à tous,
Dans le cadre d'un projet VBA, je demande par userform un Nom, puis un code personnel. Voici mon code :
Private Sub OKID_Click()
If Professeur.Value <> "" Then 'si la Combobox1 n'est pas vide, alors on continue la procédure
Else 'sinon
MsgBox "Veuillez renseigner votre identifiant (nom et prénom)" 'affichage de ce Msgbox
Exit Sub 'on sort de la procédure, donc on inscrit rien
End If 'fin de la condition
If Code.Value <> "" Then
Else
MsgBox "Veuillez renseigner votre Code personnel"
Exit Sub
End If
Dim Plage As Range
Dim Cel As Range
'la plage est définie en colonne B de la feuille "Listes" à partir de B2
With Worksheets("Listes"): Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 1).End(xlUp)): End With
'effectue la recherche exacte
Set Cel = Plage.Find(Professeur.Text, , xlValues, xlWhole)
'si pas trouvé, message et fin
'If Cel Is Nothing Then MsgBox "Identifiant mal orthographié ou inexistant !", vbExclamation: Exit Sub
'si trouvé mais que le code situé en colonne B sur la même ligne est faux, message et fin
If Cel.Offset(, 1).Value <> Code.Text Then
MsgBox "Le code saisi ne correspond pas à l'identifiant !": Exit Sub
End If
If Cel.Offset(0, 1).Value = Code.Text Then
Données.Label8.Caption = Professeur.Text
Données.Show
End If
End Sub
Seulement, selon la liste des noms et des codes répertoriée dans une feuille excel, ça fonctionne pour toutes les occurrences sauf une seule malgré qu'ils soient bien renseignés. Quelqu'un pourrait-il m'expliquer pourquoi, s'il vous plaît ? Je reçois un message : "Erreur dexécution 91 variable objet ou variable de bloc with non définie".
Merci.
Xav.