Recherche doublons sur 2 colonnes
Bonjour tout le monde, bonjour le forum,
J'utilise un Userform (U_CratModif) pour remplir une base de données, et pour éviter d'entrer 2 fois la même personne, Je veux comparer ce que j'entre dans les 2 textBox nom et prénom avec ce qui existe déjà dans la colonne ("A") et si il y a similitude de nom, recherche en colonne ("B") pour le prénom.
Si une correspondance est trouvée, une boite de dialogue m'en prévient et me fais sortir de la procédure d'enregistrement...
J'ai trouvé sur le net ce code, auquel j'ai ajouté la ligne en surbrillance, mais je sais pas l'adapter pour faire ce que je souhaite...
Option Explicit
' Une piste. La colonne de recherche est en A :
Sub Doublon()
Dim Plage As Range
Dim Cel As Range
With Worksheets("Inscriptions")
'en colonne "A" à partir de A2
Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 1).End(xlUp))
End With
'boucle la plage de la feuille "Compte" et cherche chaque valeur
'en correspondance exacte dans la plage de la feuille "Source"
For Each Cel In Plage
If Application.CountIf(Plage, Cel.Value) > 1 Then
MsgBox "Attention, la valeur '" & Cel.Value & "' est en doublon," _
& " veuillez éliminer manuellement le double situé en '" & Cel.Address(0, 0) _
& "' avant de pouvoir exporter les données !"
Cel.Interior.ColorIndex = 3
End If
Next Cel
End Sub
Auriez vous une idée pour m'aider...?
Merci de votre aide...
Bonjour
Essaie ça :
Private Sub CommandButton1_Click()
Dim plageN As Range, plageP As Range
Dim Cel As Range
With Sheets("Inscriptions")
'en colonne "A" à partir de A2
Set plageN = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
Set plageP = .Range(.Cells(2, 2), .Cells(.Rows.Count, 1).End(xlUp))
End With
'boucle la plage de la feuille "Compte" et cherche chaque valeur
'en correspondance exacte dans la plage de la feuille "Source"
Range(plageN, plageP).Interior.ColorIndex = xlNone
For Each Cel In plageN
If UCase(Cel.Value) = UCase(TextBox1) And UCase(Cel.Offset(0, 1).Value) = UCase(TextBox2) Then
MsgBox "Attention, la valeur '" & Cel.Value & "' est en doublon," _
& " veuillez éliminer manuellement le double situé en '" & Cel.Address(0, 0) _
& "' avant de pouvoir exporter les données !"
Unload Me
Range(Cel, Cel.Offset(0, 1)).Interior.ColorIndex = 3
End If
Next Cel
End SubBye !
bonsoir gmb,
Merci pour ton aide, j'ai testé ton code qui fonctionne...
Je l'ai placé dans le VBA de la feuille "Inscriptions", mais il ne fait pas exactement ce que je souhaite, puisqu'
Voir le résultat en feuille "Inscription"...!
J'ai manqué de précision dans la description de mon souhait et je te demande de m'en excuser...
Je voudrais cette macro pour contrôler les enregistrement de membres dans la feuille "Membres"
Je l'ai donc copier dans la feuille "Membres" en changeant les colonnes de travail A et B en B et C, et là, il me met en surbrillance les noms en double, et les prénom en double en mélangeant la recherche dans les 2 plages...
Voir le résultat en feuille "Membres"...!
Ce que je cherche à faire, c'est vérifier avant l'enregistrement que le membres que j'entre dans le UserForm "Ajouter un nouveau membre (auquel on accède par la feuille "Menu" ==>bouton "Gestion des membres du club" ==> bouton "Ajouter") n'est pas déjà inscrit dans la feuille "Membre".
si le nom et le prénom entrés dans les TexBox2 et TexBox3 existent déjà dans la feuille "Membres", on interdit l'enregistrement..
Si le nom existe mais pas le prénom (2 membres d'une même famille par exemple) on autorise l'enregistrement...
En tout cas merci de t'être intéressé a mon problème...
Voir mon fichier joint:
Bonsoir,
Une idée, lors de la saisie d'un nouveau membre, recherche les membres existants à partir du second caractère saisie pour le nom.
à vous de voir, d'adapter, de modifier...
gmb a écrit :Bonjour à tous
Nouvelle version.
Bye !
Bonjour gmb,
Merci pour ce code qui fait exactement ce que je souhaitais...
très efficace, merci encore...
A+
Thihii a écrit :Bonsoir,
Une idée, lors de la saisie d'un nouveau membre, recherche les membres existants à partir du second caractère saisie pour le nom.
à vous de voir, d'adapter, de modifier...
Bonjour Thihii,
Merci pour ta participation, mais j'ai préféré la solution clef en main de gmd.
Merci encore de t'être intéressé à mon problème...
A+