Interdire saisie si doublon

  • Initiateur de la discussion Initiateur de la discussion Hpotter
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

Hpotter

Guest
Bonjour à tous,

Dans un formulaire (UFSaisie) j'ai un TextBox (Tnum) dans lequel je saisie un numéro.
Je souhaiterai que lorsque l'utilisateur tabule après la saisie et que si le numéro a déjà été saisi dans le tableau de la feuille "Général", alors un message d'alerte apparaît "Attention numéro déjà saisi !" et que le TextBox reprenne le focus afin d'être modifié.

Merci pour les suggestions que vous pourrez m'apporter.
 
Re : Interdire saisie si doublon

Bonjour,

essaye le code ci-dessous, vérifie le nom des objets, code à utiliser dans le module de ton usf :

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
Set x = Sheets("Général").Range("A:A").Find(TextBox1, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    MsgBox "Le numéro est déjà en : " & x.Address & vbLf & "Recommencez !!!"
    TextBox1 = ""
    Cancel = True
End If
End Sub

bon après midi
@+

Edition : la recherche s'effectue dans la colonne A, à adapter...
 
Re : Interdire saisie si doublon

Voici le code tel qu'il est saisi dans mon UF, il fonctionne très bien. Cependant, dans mon formulaire j'ai un bouton "C3" qui ferme UF, il faut qu'il reste actif afin que l'utilisateur ait la possiblité de fermer.
Hors, dans le cas présent, à chaque fois que je clique sur un bouton le message d'erreur apparaît.
J'aurai du être plus explicite dans ma demande.

Code:
Private Sub Tnum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
Set x = Sheets("Général").Range("A:A").Find(Tnum, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    MsgBox "Le numéro est déjà en : " & x.Address & vbLf & "Recommencez !!!"
    TextBox1 = ""
    Cancel = True
End If
End Sub


Tout à fait part, peux-tu m'indiquer comment dois-je faire pour marquer un post comme résolu.
Merci par avance
 
Re : Interdire saisie si doublon

Re,

sur ce forum pas de "flag" pour dire qu'un sujet est résolu, tu le dis et c'est très bien ainsi...

par contre, pas trop compris ton 1er paragraphe...
Voici le code tel qu'il est saisi dans mon UF, il fonctionne très bien. Cependant, dans mon formulaire j'ai un bouton "C3" qui ferme UF, il faut qu'il reste actif afin que l'utilisateur ait la possiblité de fermer.
Hors, dans le cas présent, à chaque fois que je clique sur un bouton le message d'erreur apparaît.
J'aurai du être plus explicite dans ma demande.

résolu ou pas résolu ? sinon peut êtrre rajouter un test :
Code:
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
[COLOR="blue"]If TextBox1 <> "" Then[/COLOR]
    Set x = Range("A:A").Find(TextBox1, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then
        MsgBox "Le numéro est déjà en : " & x.Address & vbLf & "Recommencez !!!"
        TextBox1 = ""
        Cancel = True
    End If
[COLOR="Blue"]End If[/COLOR]
End Sub
 
Re : Interdire saisie si doublon

Merci pour ta réponse.

Je m'explique. Il faut que l'utilisateur ait la possibilité de sortir de l'UF.

Avec le code, tant qu'il n'a pas saisi un nouveau numéro il ne peut pas sortir.

C'est cela que je souhaite modifier.

Je test ton code et je te dis quoi
 
Dernière modification par un modérateur:
Re : Interdire saisie si doublon

Voilà j'ai modifié le code comme suit :
J'ai mis Cancel = False à la place de Cancel=True
Par contre, j'ai mis Tnum.setFocus mais cela ne fonctionne pas, c'est le 2ème TextBox qui prend le focus

Code:
Private Sub Tnum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
Set x = Sheets("Général").Range("A:A").Find(Tnum, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    MsgBox "Le numéro est déjà en : " & x.Address & vbLf & "Recommencez !!!"
    Tnum.SetFocus
    Tnum = ""
    [COLOR="Blue"][U]Cancel = False[/U][/COLOR]
End If
End Sub
 
Re : Interdire saisie si doublon

Bonjour Hpotter,

je suis loin d'être un pro d'excel et encore moins de VBA mais il se trouve j'ai voulu éviter kes doublons moi aussi dans un de mes fichier. Pour cela j'avais effectuer un message d'alerte sur les cellule concernées (Données => Validations => Personnalisé => et après tu saisie la formule pour la quelle le message d'alerte va se déclencher et stopper la saisie tant que le doublon n'est pas modifié)...
Voilà j'espère que ca pourra t'aider.

Bonne fin d'après-midi
 
Re : Interdire saisie si doublon

Je te prie d'accepter mes excuses, ton code fonctionne effectivement.
Je n'avais pas modifié le nom de la TextBox.

Par contre je n'ai toujours pas le focus dans Tnum.
 
Re : Interdire saisie si doublon

Bonjour Hpotter,

je suis loin d'être un pro d'excel et encore moins de VBA mais il se trouve j'ai voulu éviter kes doublons moi aussi dans un de mes fichier. Pour cela j'avais effectuer un message d'alerte sur les cellule concernées (Données => Validations => Personnalisé => et après tu saisie la formule pour la quelle le message d'alerte va se déclencher et stopper la saisie tant que le doublon n'est pas modifié)...
Voilà j'espère que ca pourra t'aider.

Bonne fin d'après-midi

Bonjour,

Merci pour ta suggestion, mais ma saisie se fait à partir d'un formulaire pas directement dans le tableau.

Bon après-midi à toi également
 
Re : Interdire saisie si doublon

J'ai fait ceci et je ne comprends pas ce que tu veux que je fasse.

Code:
Private Sub Tnum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim x As Range
If Tnum <> "" Then
    Set x = Range("A:A").Find(Tnum, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then
        MsgBox "Le numéro est déjà en : " & x.Address & vbLf & "Recommencez !!!"
        Tnum = ""
        Cancel = True
    End If
End If

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

F
  • Question Question
Réponses
2
Affichages
3 K
FrancoisH
F
G
Réponses
16
Affichages
2 K
Z
Réponses
3
Affichages
6 K
Z
D
Réponses
12
Affichages
8 K
David2Coree
D
O
Réponses
2
Affichages
2 K
OoPHILoO
O
D
Réponses
4
Affichages
2 K
F
Réponses
20
Affichages
5 K
funcky222
F
F
Réponses
2
Affichages
7 K
FullMetalKnet
F
Retour