Merci beaucoup, ca fontionne presque!
J'ai une liste prédéfinie, qui s'appelle par exemple "liste_historique". Comment déclaré une liste à laquelle j'ai donné un nom en guise d'interdit?
J'ai essayé liste = liste_historique
mais ça me fait une erreur de type "incompatibilité de type".
Mon code modifié =
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("AT:AT")) Is Nothing Then 'restreint les cellules où on vérifie la valeur à A1
If Target = "" Then Exit Sub 'on quitte le programme si la cellule est vide
liste = liste_historique 'on déclare la liste des interdits ici, on peut le faire autrement
For i = LBound(liste, 1) To UBound(liste, 1) 'on parcourt la liste des interdits pour voir si la valeur en fait partie
If Target = liste(i) Then
MsgBox "La valeur saisie fait partie de la liste des interdits.", vbCritical, "Donnée invalide"
Target = "" 'on vide la cellule
Target.Select 'et on la resélectionne
Exit For 'comme on a plus besoin de chercher, on quitte la boucle
End If
Next i
End If
End Sub
Merci!