Bonjour à tous,
Je suis en train de créer un fichier me permettant de dresser un inventaire d'échantillons. Je souhaiterais afficher la liste des valeurs possibles en tapant les 1ère lettres. J'ai donc suivi l'excellent tuto trouvé sur le site suivant :
Listes en cascade
Néanmoins, cette technique ne permet pas d'empêcher à l'utilisateur d'entrer une valeur qui n'est pas sur la liste. Le tuto propose donc l'ajout de la macro ci-dessous :
Pour empêcher la saisie d'un nom qui n'existe pas dans la liste Noms
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
If Target <> "" Then
On Error Resume Next
Set temp = [noms].Find(Target.Value, LookAt:=xlWhole)
If Err = 50290 Then Exit Sub
If temp Is Nothing Then Application.Undo
End If
End If
End Sub
Mon fichier n'est pas organisé pareil que celui de l'exemple puisque les cellules à vérifier sont en colonne B, de B16 à B105 pour être plus précis. J'ai changé Target.Column = 2 mais ensuite je suis bloqué !
Merci par avance pour l'aide que vous pourrez m'apporter.
PS: merci de m'expliquer votre solution pour que je puisse progresser !
Je suis en train de créer un fichier me permettant de dresser un inventaire d'échantillons. Je souhaiterais afficher la liste des valeurs possibles en tapant les 1ère lettres. J'ai donc suivi l'excellent tuto trouvé sur le site suivant :
Listes en cascade
Néanmoins, cette technique ne permet pas d'empêcher à l'utilisateur d'entrer une valeur qui n'est pas sur la liste. Le tuto propose donc l'ajout de la macro ci-dessous :
Pour empêcher la saisie d'un nom qui n'existe pas dans la liste Noms
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
If Target <> "" Then
On Error Resume Next
Set temp = [noms].Find(Target.Value, LookAt:=xlWhole)
If Err = 50290 Then Exit Sub
If temp Is Nothing Then Application.Undo
End If
End If
End Sub
Mon fichier n'est pas organisé pareil que celui de l'exemple puisque les cellules à vérifier sont en colonne B, de B16 à B105 pour être plus précis. J'ai changé Target.Column = 2 mais ensuite je suis bloqué !
Merci par avance pour l'aide que vous pourrez m'apporter.
PS: merci de m'expliquer votre solution pour que je puisse progresser !
Pièces jointes
Dernière édition: