Private Sub CommandButton1_Click()
'On déclare les variables
Dim NL, l As Integer
Dim doublon As Boolean
Dim cel As Range
'On initialise la variable doublon comme False
doublon = False
'Sur la feuille "Feuil1"
With Sheets("Feuil1")
'Ça vous savez
NL = .Range("A" & .Cells.Rows.Count).End(xlUp).Row + 1
'Pour toutes les cellules entre A2 et la dernière cellule de la colonne A
For Each cel In .Range(.Cells(2, 1), .Cells(NL, 1))
'Si nom ET prénom pareils alors
If cel.Value = M1.Value And cel.Offset(0, 1).Value = M2.Value Then
'Passer doublon en True
doublon = True
'Sort de la boucle
Exit For
'Fin de la condition
End If
'Fin de la boucle
Next cel
'Pour les condition de doublon
Select Case doublon
'Si vrai
Case True
'Message
MsgBox "''" & M1.Value & "'' est déjà dans la liste." _
& Chr(13) & "Vous ne pourrez que modifier sa spécialité !"
'On reprend la boucle d'avant
For Each cel In .Range(.Cells(2, 1), .Cells(NL, 1))
'Si nom ET prénom pareils alors
If cel.Value = M1.Value And cel.Offset(0, 1).Value = M2.Value Then
'Modification uniquement de la spécialité du doublon (de la ligne concernée)
cel.Offset(0, 2).Value = M3
End If
'Fin de la boucle
Next cel
'Si faux
Case False
'Ajout des données à la ligne suivante
.Cells(NL, 1).Value = M1
.Cells(NL, 2).Value = M2
.Cells(NL, 3).Value = M3
'Fin de Select
End Select
'Fin du With
End With
End Sub