Vérification ID unique
Mamiche31
Messages postés
13
Statut
Membre
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
Je souhaite créer une macro qui permette de déterminer si un numéro est unique dans une colonne.
Par exemple, si sur la colonne C qui correspond a l'ID d'une tache, je tape un ID qui existe déjà, je souhaite être alerté et ne pas pouvoir mettre ce numéro (vu qu'il existe déjà). En revanche, si cet ID n'existe pas, je peux alors le saisir sans problème.
Merci :)
Je souhaite créer une macro qui permette de déterminer si un numéro est unique dans une colonne.
Par exemple, si sur la colonne C qui correspond a l'ID d'une tache, je tape un ID qui existe déjà, je souhaite être alerté et ne pas pouvoir mettre ce numéro (vu qu'il existe déjà). En revanche, si cet ID n'existe pas, je peux alors le saisir sans problème.
Merci :)
1 réponse
-
Essaies :
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim cel As Range If Intersect(Target, Columns("C")) Is Nothing Then Exit Sub If Target.Formula = "" Then Exit Sub Set cel = Columns("C").Find(Target.Value, after:=Range("C1"), _ LookIn:=xlValues, lookat:=xlWhole) If cel.Address = Target.Address Then Set cel = Columns("C").Find(Target.Value, after:=cel, _ LookIn:=xlValues, lookat:=xlWhole) End If If cel.Address = Target.Address Then Exit Sub MsgBox "ID existant déjà" Target.Formula = "" Target.Activate End Sub-
-
-
Le même avec les explications :
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim cel As Range 'Si la cellule modifiée n'est pas en colonne C : terminé If Intersect(Target, Columns("C")) Is Nothing Then Exit Sub 'Si la cellule modifiée est vide : termuné If Target.Formula = "" Then Exit Sub 'Chercher dans la colonne C, la 1° cellule qui contient la même valeur Set cel = Columns("C").Find(Target.Value, after:=Range("C1"), _ LookIn:=xlValues, lookat:=xlWhole) 'Si la cellule trouvée est la même que celle modifiée ... If cel.Address = Target.Address Then '... chercher la cellule suivante contenant la même valeur Set cel = Columns("C").Find(Target.Value, after:=cel, _ LookIn:=xlValues, lookat:=xlWhole) End If 'Si la cellule trouvée est encore la même que celle modifiée : terminé If cel.Address = Target.Address Then Exit Sub 'sinon c'est qu'il existe une cellule contenant la même valeur MsgBox "ID existant déjà" 'dans ce cas effacer la valeur saisie et reselection la cellule Target.Formula = "" Target.Activate End Sub
-