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

Autres vérification données avant validation sur userfom

  • Initiateur de la discussion Initiateur de la discussion samia89
  • 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 !

samia89

XLDnaute Nouveau
bonjour tt le monde j'ai besoin d'aide svp

j'ai un UserForm avec "TextBox, ComboBox" et une "ListBox1"

j’utilise se code qui me permit de vérifier l’existence d'un nom Quand je clic sur le bouton valider et de m'informer que se nom existe déjà et je ce que la le code fonction très bien
VB:
Private Sub TextBox16_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim rg As Range
If TextBox16.Text = "" Then Exit Sub
Set rg = Sheets("Article").Range("C:C").Find(TextBox16.Text)
If Not rg Is Nothing Then
    MsgBox "le Nom Existant Déjà"
    Cancel = True

End If
End Sub

le problème si que quand je clic sur une ligne de ma ""ListBox1" pour remplir mes "TextBox et ComboBox" pour les modification je reçois toujours le message "le Nom Existant Déjà"

merci et excellente journée
 
Bonjour,
Pourquoi n'utilises-tu pas l'évènement Exit() du Control pour faire le contrôle de contenu ?
VB:
Private Sub TextBox16_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Rng As Range
   
    If Not Me.Visible Then Exit Sub 'Userform fermé CloseMode 0 (X fenêtre)
    If TextBox16.Text = "" Then Exit Sub
   
    Set Rng = Sheets("Article").Range("C:C").Find(TextBox16.Text)
    If Not Rng Is Nothing Then
        MsgBox "Cee Nom Existant Déjà"
        Cancel = True
    End If
End Sub
 
Le seul inconvénient est que l'évènement Exit() est prioritaire sur tout autre évènement sauf la fermeture de la fenêtre par le 'X' de la barre de menu du UserForm.

Donc si tu prévois de forcer la sortie par un bouton <Annuler/Quitter/Abandonner> alors que le focus est toujours dans le Control à cause d'une erreur, tu ne pourras pas le faire sans préalablement régler la situation d'erreur. Car à aucun moment le code d'aucun évènement du bouton <Annuler/Quitter/Abandonner> (à part le _MouseMove() qui n'a pas d'intérêt) n'aura pu être exécuté, l'Exit() étant prioritaire.
 
Dernière édition:
Bonjour Dudu2 merci pour ton aide et je vous informe que j'ai trouve le problème il suffit juste modifier la ligne
Cancel = True 'par
Cancel = False 'pour éviter d'afficher le message "Cee Nom Existant Déjà" qaund je clic sur une ligne de ma ""ListBox1"

Merci encor une fois
 
- 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

Discussions similaires

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