En l'état cela bloque et c'est dommage
ceci est dû au fait que la cellule reste sélectionnée donc, si chaque adhérent doit noté 3 photos, il suffit une fois arrivé en bout de ligne de sélectionner une cellule en dehors de la grille ce qui fait que quand l'adhérent suivant effectue sont choix, il va devoir obligatoirement sélectionner dans la grille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cel As Range
Dim I As Integer
If Intersect(Target, Range("M13:S22")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each Cel In Range("D5:F30")
If Cel.Value = "" Then
For I = 4 To Cel.Column
'si la photo a déjà été choisie, message et fin
If Cells(Cel.Row, I).Value = Target.Value Then MsgBox "Vous avez déjà choisi cette photo !", vbInformation: Exit Sub
Next I
Cel.Value = Target.Value
'si les trois choix ont été fait, sélectionne la cellule M12
If Cel.Column = 6 Then Range("M12").Select
Exit For
End If
Next Cel
End Sub
J'ai intégré un contrôle afin d'éviter le choix de la même photo sur la même ligne. Il te faut déverrouiller la cellule M12 afin qu'elle soit sélectionnable par le code une fois les trois choix réalisé par l'adhérent. Tu peux en coisir une autre si tu veux, c'est pour cette raison que j'ai utilisé Range() plutôt que Cells() (plus facile pour celui qui n'est pas trop habitué)