Vérification ID unique
Fermé
Mamiche31
Messages postés
12
Date d'inscription
lundi 23 janvier 2012
Statut
Membre
Dernière intervention
15 mai 2012
-
23 janv. 2012 à 14:11
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 25 janv. 2012 à 20:37
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 25 janv. 2012 à 20:37
1 réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 762
23 janv. 2012 à 16:46
23 janv. 2012 à 16:46
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
24 janv. 2012 à 12:18
Et elle ne fonctionne pas, comment dois-je l'utiliser ?
Merci
25 janv. 2012 à 20:27
Il suffit de copier le code ci-dessus dans le module de la feuille correspondante
Copier /clic droit sur l'onglet / visualiser le code / coller
25 janv. 2012 à 20:37
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