[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]
[COLOR=NAVY]Option Explicit[/COLOR]
[COLOR=NAVY]Private Sub[/COLOR] Worksheet_Change([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=GREEN]'myDearFriend! - www.mdf-xlpages.com[/COLOR]
[COLOR=NAVY]Dim[/COLOR] Plage [COLOR=NAVY]As[/COLOR] Range
[COLOR=NAVY]With[/COLOR] Application
[COLOR=GREEN]'On empêche l'utilisateur d'agir sur une plage entière[/COLOR]
[COLOR=NAVY]If[/COLOR] Target.Count > 1 [COLOR=NAVY]Then[/COLOR]
.Undo
[COLOR=NAVY]Exit Sub
End If[/COLOR]
[COLOR=GREEN]'Pour limiter le traitement à la seule ligne "1", il faut décommenter la ligne de code suivante :[/COLOR]
[COLOR=GREEN]'If .Intersect(Target, Rows(1)) Is Nothing Then Exit Sub[/COLOR]
[COLOR=GREEN]'On définit la plage de traitement (cellules en ligne)[/COLOR]
[COLOR=NAVY]Set[/COLOR] Plage = Range(Cells(Target.Row, 1), Cells(Target.Row, 256).[COLOR=NAVY]End[/COLOR](xlToLeft))
[COLOR=GREEN]'Seule la dernière cellule de la plage peut être effacée[/COLOR]
[COLOR=NAVY]If[/COLOR] .CountBlank(Plage.Resize(, Plage.Columns.Count - 1)) [COLOR=NAVY]Then[/COLOR]
.Undo
[COLOR=NAVY]Exit Sub
End If[/COLOR]
[COLOR=GREEN]'On empêche les doublons[/COLOR]
[COLOR=NAVY]If[/COLOR] .CountIf(Plage, Target) > 1 [COLOR=NAVY]Then[/COLOR] .Undo
[COLOR=NAVY]End With
End Sub[/COLOR]