Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pl As Range 'déclare la variable Pl (Plage)
Set Pl = Application.Union(Range("C29:C32"), Range("C34:C36")) 'définit la plage Pl
If Application.Intersect(Target, Pl) Is Nothing Then Exit Sub 'si le changement a lieu ailleurs que dans la plage Pl, sort de laprocédure
If Target.Value = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
'si "Oui" au message copie la cellule de la plage dans la première colonne vide de la même ligne après la colonne L
If MsgBox("Avez-vous d'autres informations de ce type (" & Range("A29").Value & ") à renseigner ?" & vbLf & vbLf & _
"Si oui, vos données vont être sauvegardées et vous allez pouvoir en renseigner d'autres." & vbLf & vbLf & "Si non, merci de passer à l'étape suivante", vbYesNo + vbQuestion, _
"GESDEC") = vbYes Then Cells(Target.Row, Application.Columns.Count).End(xlToLeft).Offset(0, 1).Value = Target.Value
With Target
.ClearContents 'efface le contenue de la cellule modifiée
.Select 'sélectionne la cellule modifiée
End With
End Sub