[VBA] gestion des doublons

Fermé
phileas1412 Messages postés 7 Date d'inscription mercredi 18 janvier 2006 Statut Membre Dernière intervention 20 mars 2006 - 20 janv. 2006 à 13:50
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 - 21 janv. 2006 à 01:13
Bonjour,

je saisi des données par l'intermédiaire d'une useform (via textbox) qui remplit la colonne ("A:A") d'une feuille Excel. J'aimerai vérifier si dans cette colonne, la valeur du textbox n'existe pas déjà, auquel cas il renvoi un message d'erreur.

Je bloque un peu la dessus pour continuer ma programmation. Si vous pouvez me donner un coup de main, ce serait super...

Merci d'avance
Phileas1412
A voir également:

2 réponses

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
20 janv. 2006 à 22:34
hello,

je pense que je ferais quelquechose comme ça, (en ayant un bouton appelé cmdOK sur le formulaire pour valider la valeur du TextBox1) :

Private Sub cmdOK_Click()
    Dim varDoublon As Variant
    
    On Error Resume Next
    Columns(1).Find(TextBox1.Value, , xlValues, xlWhole).Select
    If Err.Number Then
        Range("A65536").End(xlUp).Offset(1, 0).Value = TextBox1.Value
    Else
        MsgBox "Cette valeur existe déjà", vbExclamation, ThisWorkbook.Name
    End If
End Sub

2
phileas1412 Messages postés 7 Date d'inscription mercredi 18 janvier 2006 Statut Membre Dernière intervention 20 mars 2006
20 janv. 2006 à 23:16
Bonjour,

Merci beaucoup Kobaya, c'est exactement ça que je cherchais. Je vais pouvoir avancer.

Au plaisir d'une autre ligne de programmation....

Phileas1412
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
21 janv. 2006 à 01:13
bonsoir,

en torturant un peu le code de Kobaya, et si tu veux faire plus compliqué :

Private Sub cmdOK_Click()
    If Evaluate("=SUM(IF(A1:A" & Range("A65536").End(xlUp).Row & "=""" & TextBox1.Value & """,1,0))") = 0 Then
        Range("A65536").End(xlUp).Offset(1, 0).Value = TextBox1.Value
    Else
        MsgBox "Cette valeur existe déjà", vbExclamation, ThisWorkbook.Name
    End If
End Sub


je n'ai pas testé sur des dates.

A+
2