Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans une cellule
If Selection.Cells.Count > 1 Then Exit Sub 'si le nombre de cellules sélectionnées est supérieur à 1, sort de la procédure
'si le changement a lieu ailleurs que dans dans la colonne G (en partant de la ligne 3 jusqu'à la dernière cellule éditée de la colonne D), sort de la procédure
If Application.Intersect(Target, Range("G3:G" & Cells(Application.Rows.Count, 4).End(xlUp).Row)) Is Nothing Then Exit Sub
'si la valeur de la cellule est "Autre Club", place "Tennis Loisir" dans la colonne H
If Target.Value = "Autre Club" Then Target.Offset(0, 1).Value = "Tennis Loisir": Exit Sub
Select Case Target.Offset(0, -1) 'agit en fonction du cas de la cellule en colonne F
Case "Jeune" 'cas "Jeune"
With Target.Offset(0, 1).Validation 'prend en compte la validation de données en colonne H
.Delete 'supprime une éventuelle validation de données
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Ecole Tennis 1H,Ecole Tennis 1H30,Ecole Tennis 3H,Tennis Loisir" 'ajoute la liste de validation
End With 'fin de la prise en compte de la validation de données
Case "Adulte" 'cas "Adulte"
With Target.Offset(0, 1).Validation 'prend en compte la validation de données en colonne H
.Delete 'supprime une éventuelle validation de données
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Tennis Loisir,Cours Adultes 1H30" 'ajoute la liste de validation
End With 'fin de la prise en compte de la validation de données
End Select 'fin de l'action en fonction de....
End Sub