Recherche de doublons sur 2 colonnes

BONJOUR A TOUS,

MON SUJET EST LE SUIVANT:

PARTANT D'UNE FEUILLE AVEC UNE COLONNE "A" CONTENANT DES NOMS ET UNE COLONNE "B" CONTENANT DES PRÉNOMS

JE SOUHAITE OBTENIR LORS DE LA SAISIE DANS UN USEFORM

1) MESSAGE SIGNALANT L'EXISTANCE D'UN COUPLE PARFAITEMENT IDENTIQUE

2) EFFACEMENT DE LA SAISIE EN DÉFAUT ET RETOUR AU POINT DE DÉPART POUR RECOMMENCER LA SAISIE MODIFÉE OU PAS.

LA FORMULATION EST TOUTE SIMPLE MAIS MALGRÈS LES NOMBREUSES SOLUTIONS PROPOSÉES SUR LE SITE

JE N'AI RIEN TROUVÉ QUI ME SATISFASSE PLEINEMENT.

QUEQU'UN VOUDRA T-IL SE PENCHER SUR MON MINI PROBLÈME. JE RESTE EN EFFET CONVAINCU QUE C'EST BASIC.

PAR AVANCE MERCI

bonjour

passe en minuscules, sur un forum les majuscules signifient JE CRIE

pas besoin !

tu fais tes saisies dans le tableau et non dans un formulaire.

ajoute par exemple une MFCqui met en rouge les doublons pour éviter les doublons (menu MFC "doublons")

les formulaires ça fait "pro". Mais c'est oublier qu'aucun progiciel n'est fait avec Excel. Alors mieux vaut s'en passer :

simpicité

fiabilité

compréhension

temps gagné pour toi

Bonjour JMD. Merci d'avoir pris la peine de me lire.

En retour je voudrais me permettre de te rappeler une citation de Coluche :

"Si vous avez un besoin faites appel à votre député. Il saura vous dire comment vous en passer".

Merci quand même.

Bonjour,

Une piste, le code est à mettre dans le module de ton formulaire. La procédure est appelée sur sortie des TextBox. Pour le contrôle des doublons, le nom et prénom sont concaténés :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Doublons
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Doublons
End Sub

Sub Doublons()

    Dim Dico As Object
    Dim Plage As Range
    Dim Cel As Range
    Dim I As Long

    Set Dico = CreateObject("Scripting.Dictionary")

    With ActiveSheet: Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    For Each Cel In Plage: Dico(Cel.Value & Cel.Offset(, 1).Value) = "": Next Cel

    If TextBox1.Text <> "" And TextBox2.Text <> "" Then

        If Dico.Exists(TextBox1.Text & TextBox2.Text) Then

            MsgBox "Cette personne est déjà présente dans la base de données !"
            TextBox1.Text = "": TextBox2.Text = ""
            TextBox1.SetFocus

        Else

            Dico(TextBox1.Text & TextBox2.Text) = ""

            'ici, enregistrements des valeurs dans la base...

        End If

    End If

End Sub

Bonjour JMD. Merci d'avoir pris la peine de me lire.

En retour je voudrais me permettre de te rappeler une citation de Coluche :

"Si vous avez un besoin faites appel à votre député. Il saura vous dire comment vous en passer".

Merci quand même.

re

te fâche pas

oui, un formulaire ça fait pro

demande-toi pourquoi Microsoft en propose un, mais un peu rudimentaire...

ceci dit, quel que soit ton choix, bon travail, bonne réussite

amitiés

Merci à Theze pour la solution proposée.

Malheureusement elle provoque le message d'erreur 429 "Un composant ActiveX ne peut pas créer d'objet" au passage de TextBox1 à TextBox2.

Celà est-il du à ma version Excel2007 Pro ou une autre raison.

Avez-vous une idée?

Merci encore

Re,

J'ai aussi Excel 2007 Pro !

Je te poste un petit fichier avec noms et prénoms fictifs, testes pour voir :

A THEZE pour la pièce jointe.

Merci cela m'a évité de taper n'importe quoi.

Ça marche, il ne me reste plus quà adapter à mon besoin.

Sans rajouter de flateries merci encore.

Bonjour,

Content de t'avoir aidé

Rechercher des sujets similaires à "recherche doublons colonnes"