Re salut Ancat, Dan, salut le forum,
Une solution avec VBA qui permet de supprimer la formule (et la validation)dans la colonne C puisque c'est le code qui va le faire si la cellule de la colonne A est non vide.
Le problème est qu'il faut que tu copies le code ci-dessous dans un endroit précis. Si tu n'as jamais ouvert l'Éditeur Visual Basic, tu risques d'être un peu désorientée. Mais si tu suis à la lettre la manip ci-dessous tu n'auras pas de problème.
Copie le code ci-dessous. Ouvre ton fichier original, ouvre l'Éditeur Visual Basic ([Alt]+[F11]), il se compose de deux parties à gauche et d'un grand cadre à droite. Dans la partie en haut à gauche, double-clique dans la feuille contenant ton tableau (dans le fichier test.xls c'est la Feuil1 (Feuil1)). Maintenant colle le code dans le grand cadre de droite.
À plus, Robert
Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque modification
'cond1tion 1 : n'agit que si la modification a lieu dans la colonne A
If Not Application.Intersect(Target, Range("A2:A" & Range("A65536").End(xlUp).Row)) Is Nothing Then
If Target.Value <> "" Then 'condition 2 :si cellule active différente du vide
Target.Offset(0, 2) = "moderne" 'écrit "moderne" deux cellules à coté
With Target.Offset(0, 2).Validation 'crée la validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$E$8:$E$11"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else 'sinon (si tu effaces par exemple)
With Target.Offset(0, 2) 'efface valeur et validation de la deuxième cellule à coté
.Value = ""
.Validation.Delete
End With
End If 'fin condition 2
End If 'fin condition 1
End Sub