XL 2019 Comment détecter si le texte entré dans une cellule est un doublon (déjà utilisé dans la même colonne sur les lignes supérieures) ?

Jean-Phi84

XLDnaute Nouveau
J'ai bien compris comment identifier les doublons une fois que toutes les lignes ont été renseignées via les outils de mise en forme conditionnelle.
Mon besoin est différent, là l'idée serait au moment où on renseigne une valeur ( texte) dans une cellule une fois qu'on a rempli la cellule, excel détecte si le texte saisi existe dans les cellules supérieures de la même colonne, et le cas échéant remplisse la cellule en rouge et émette un pop-up du style "texte déjà utilisé"

Pouvez-vous svp m'expliquer la marche à suivre pour pouvoir faire ça ?

N'hésitez pas si vous avez des questions

Merci d'avance pour votre aide
 

fanch55

XLDnaute Barbatruc
Bonjour,
Code à mettre dans le module de la feuille,
traite la colonne A --> à modifier
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case True
    Case Target.Count > 1                     ' pas de contrôle si plus d'une cellule modifiée
    Case Target.Column <> Columns("a").Column ' la colonne ne correspond pas à celle à contrôler
    Case Target.Value = vbNullString          ' la cellule est vide
    Case Else
        Set R = Columns(Target.Column).Find(Target.Value, Target, xlValues, xlWhole)
        Select Case True
        Case R Is Nothing                     ' La valeur n'a pas été trouvée
        Case R.Address = Target.Address       ' la cellule trouvée est celle qui a été saisie
        Case Else
            MsgBox "La cellule " & R.Address & " contient déjà cette valeur", vbCritical
            Application.Undo
        End Select
    End Select
End Sub
A associer avec une Mfc pour la couleur :
1676461806660.png
 

mapomme

XLDnaute Barbatruc
Bonjour @Jean-Phi84 :),

En appliquant sur la zone utile (A2:J12), une validation des cellules qui empêche de saisir un doublon.

Pour information, on a aussi appliqué une Mise en Forme Conditionnelle sur la plage en cas de doublon dans la colonne. Mais c'est inutile car la validation empêche déjà de saisir des doublons.
1676461870509.png



edit : bonjour @fanch55 :) .
 

Pièces jointes

  • Jean-Phi84- validation & MFC- v1.xlsx
    10 KB · Affichages: 5

Jean-Phi84

XLDnaute Nouveau
Bonjour,
Code à mettre dans le module de la feuille,
traite la colonne A --> à modifier
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case True
    Case Target.Count > 1                     ' pas de contrôle si plus d'une cellule modifiée
    Case Target.Column <> Columns("a").Column ' la colonne ne correspond pas à celle à contrôler
    Case Target.Value = vbNullString          ' la cellule est vide
    Case Else
        Set R = Columns(Target.Column).Find(Target.Value, Target, xlValues, xlWhole)
        Select Case True
        Case R Is Nothing                     ' La valeur n'a pas été trouvée
        Case R.Address = Target.Address       ' la cellule trouvée est celle qui a été saisie
        Case Else
            MsgBox "La cellule " & R.Address & " contient déjà cette valeur", vbCritical
            Application.Undo
        End Select
    End Select
End Sub
A associer avec une Mfc pour la couleur :
Regarde la pièce jointe 1163452
Merci, désolé pour le retard de ma réponse, j'étais en vacances et suis rentré le weekend dernier. Je ne suis aps sûr de savoir intégrer du code à mon classeur, j'ai compris le principe avec le développeur. Mais je ne sais pas comment "appliquer la fonction". Peux-tu stp m'expliquer la marche à suivre ?
 

fanch55

XLDnaute Barbatruc
Bonjour,
Si le développeur a vu le code proposé, il a du vous dire que celui-ci s'exécute à chaque modification de la feuille.
Que vous dire de plus sinon de bien indiquer dans le code la colonne de la cellule que vous voulez contrôler ?
 

Pièces jointes

  • merinos.xlsm
    15.8 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 537
Membres
112 771
dernier inscrit
mikadu49