Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

tester un textbox pour afficher un message si doublon l

ngexcel

XLDnaute Occasionnel
j'ai un userform1 a l'ouverture je clic sur nouveau mes textbox sont vides et le curseur va sur le textbox1
quand je saisie un numéro dans ma textbox1 et que je passe a la textbox2
je voudrais un message attention numéro déjà saisie dans la base

la base est dans la feuil2 colonne A

ci joint fichier mot de passe 1234
 

unrender

XLDnaute Junior
Re : tester un textbox pour afficher un message si doublon l

A mettre dans l'événement Exit de TextBox1 :

Code:
Dim fin As Integer, i As Integer
fin = ActiveWorkbook.Sheets("Feuil2").Range("A65536").End(xlUp).Row
For i = 2 To fin
    If TextBox1.Value = ActiveWorkbook.Sheets("Feuil2").Cells(i, 1).Value Then
        MsgBox "Attention numéro déjà saisie dans la base !", vbCritical
        Exit Sub
    End If
Next
 

unrender

XLDnaute Junior
Re : tester un textbox pour afficher un message si doublon l

Ce que te propose Klin est beaucoup mieux... ça évite d'utiliser une boucle.
Je ne connaissais pas
Super, je ne suis pas passé pour rien, ça me servira

Merciiii.
 

ngexcel

XLDnaute Occasionnel
Re : tester un textbox pour afficher un message si doublon l

Je reviens juste pour dire que le code fonctionne mais quand je clic sur le Bouton nouveau il insert comme même le numéro qui est en doublon voir fichier merci et pardon du dérangement
 

Fo_rum

XLDnaute Accro
Re : tester un textbox pour afficher un message si doublon l

Bonsoir,

étant donné que tu as un Module de classe, une solution éventuelle :
Dans Userform1, renomme Textbox1 en Nouveau.
Dans Classe1, rajoute
Code:
Private Sub texb_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   If texb.Name <> "Nouveau" Then Exit Sub
   Dim Est As Range
    With Feuil2
        Set Est = .Range("A1:B" & .Cells(Rows.Count, 1).End(xlUp).Row).Find(texb, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
    End With
    If Est Is Nothing Then Exit Sub
    MsgBox "Ce numéro est déjà dans la base !", vbCritical, "Code refusé :"
    texb = ""
    texb.SetFocus
End Sub
 

ngexcel

XLDnaute Occasionnel
Re : tester un textbox pour afficher un message si doublon l

j'ai mis le code ainsi que textbox1 en nouveau
mais j'ai toujours un problème quand le userform s'ouvre avec les textbox
les textbox affiche la premiere ligne des donnéés de la base
j'ai donc un message Ce numéro est déjà dans la base !
si je fais nouveau il efface le numero article et le sauvegarde
peux tu tester mon fichier je suis en panique...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : tester un textbox pour afficher un message si doublon l

Bonjour le fil, bonjour le forum,

Puisque tu rencontres des problèmes peut-être revenir à la proposition de Unrender. J'ai juste remplacé la boucle par une recherche Find...
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim r As Range 'déclare la variable r (Recherche)
 
If TextBox1.Value <> "" Then 'condition 1 : si la TextBox1 n'est pas vide
    Set r = Sheets("Feuil2").Columns(1).Find(TextBox1.Value, , xlValues, xlWhole) 'définit la recherche r
    If Not r Is Nothing Then 'condition 2 : s'il existe au moins une occurrence
        MsgBox "Attention numéro déjà saisie dans la base !", vbCritical 'message
        Cancel = True 'annule la sortie de la TextBox1
        TextBox1.SetFocus 'place le curseur dans la Textbox1
        'sélectionne la TextBox1
        TextBox1.SelStart = 0 'début de la sélection
        TextBox1.SelLength = Len(TextBox1.Value) 'longueur de la sélection
    End If 'fin de la condition 2
End If 'fin de la condition1
End Sub

Quand on ouvre ton fichier on est confronté à toutes sortes de code mais pas du tout à ton problème...
 
Dernière édition:

ngexcel

XLDnaute Occasionnel
Re : tester un textbox pour afficher un message si doublon l

robert merci pour les motifs cela bloque bien mon textbox1 car il affiche la premiere ligne de ma base j ai bien le message mais je peux pas faire nouveau et si je retape par dessus les textbox je vais effacer mon enregistrement qui etait affiché peux tu regarder mon fichier
merci ng
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : tester un textbox pour afficher un message si doublon l

Bonjour le fil, bonjour le forum,

Ben c'est bien ça le problème... Je l'ai regardé ton fichier... Mais avec ce module de classe et tous ces codes élaborés je n'y ai rien compris... Là il te faut du balèze pas du bricoleur !!!
 

Discussions similaires

Réponses
32
Affichages
966
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…