Userform condition de validation

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

mikael2235

XLDnaute Occasionnel
Bonjour à tous,

J'ai crée un Userform sous Excel, avec un bouton de validation qui recopie les données dans un tableau

Comment puis-je faire pour empecher la validation tant que certain TextBox ne sont pas rempli ? Qu'il me renvoie une MsgBox me disant de remplir les champs vide ou non complet (ex : TextBox1 doit faire 10 caractères et ne fait que 8 ou TextBox 2 est vide)


Merci

Mikael
 
Re : Userform condition de validation

Bonjour Mikael2235, bonjour à toutes et à tous 🙂

Voici l'aide d'XL sur la procédure événementielle Query_Close :

Code:
[B]QueryClose, événement[/B]
         

Se produit avant la fermeture d'un objet [B]UserForm[/B].

[B][I]Syntaxe[/I][/B]

[B]Private Sub UserForm_QueryClose[/B]([I]cancel[/I] [B]As Integer[/B], [I]closemode[/I] [B]As Integer[/B])

La syntaxe de l'événement QueryClose comprend les éléments suivants :

[B][I]Élément & Description[/I][/B] 

[B][I]cancel[/I][/B] : Nombre entier. Affecter à cet argument une valeur différente de 0
interrompt l'événement QueryClose dans toutes les feuilles utilisateur chargées et
empêche l'objet UserForm et l'application de se fermer.
 
[B][I]closemode[/I][/B] Valeur ou constante indiquant la cause de l'événement QueryClose. 



Valeurs renvoyées

L'argument closemode renvoie les valeurs suivantes :

Constante & Valeur & Description
 
[I]vbFormControlMenu[/I] / [B]0[/B] / L'utilisateur a choisi la commande Fermeture dans le menu Système placé sur l'objet UserForm.
 
[I]vbFormCode[/I] / [B]1[/B] / L'instruction Unload est appelée à partir du code.
 
[I]VbAppWindows[/I] / [B]2[/B] / La session courante dans l'environnement d'exploitation Windows est en train de s'achever. (Visual Basic 5.0 uniquement.)
 
[I]VbAppTaskManager[/I] / [B]3[/B] / Le Gestionnaire de tâches de Windows est en train de fermer l'application. (Visual Basic 5.0 uniquement.) 



Ces constantes sont répertoriées dans la bibliothèque d'objets de Visual Basic pour Applications, dans l'Explorateur d'objets. Notez que vbFormMDIForm est également spécifié dans l'Explorateur d'objets bien que n'étant pas géré pour le moment.

[B]Remarques[/B]

Cet événement est ordinairement utilisé pour s'assurer qu'il n'existe plus aucune tâche en cours d'exécution dans les feuilles utilisateur d'une application avant que celle-ci ne se referme. Par exemple, si un utilisateur n'a pas enregistré les nouvelles données dans un objet UserForm, l'application peut demander à l'utilisateur de les enregistrer.

Lorsqu'une application se ferme, [U]vous pouvez utiliser la procédure d'événement QueryClose pour affecter à la propriété Cancel la valeur True, interrompant ainsi le processus de fermeture[/U].

Voilà, je pense que tu sais comment faire désormais. Si tu as besoin d'aide pour le mettre en oeuvre, n'hésite pas à revenir 😉

à+
 
Re : Userform condition de validation

Bonjour le fil, bonjour le forum,

Tu peux aussi empêcher la sortie d'une Textbox qui ne contient pas assez de caractères avec ce type de code :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'à la sortie de la Textbox
If Len(TextBox1.Value) < 5 Then 'condition : si le nombre de caractère est inférieur à 5 (à adapter)
    Cancel = True 'annule la sortie de la Textbox
    MsgBox "Ce champs doit contenir 5 caractères au minimum !" 'message
End If 'fin de la condition
End Sub
Tu peux bloquer le nombre maximum de caractère avec la propriété MaxLength.

Si tu as un bouton de validation de ton UserForm, tu peux boucler sur toutes les Textboxes vides avec un message :
Code:
Private Sub CommandButton1_Click() 'bouton de commande de validation de l'UserForm
Dim ctrl As Control 'déclare la variable ctrl
For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'userform
    If TypeOf ctrl Is MSForms.TextBox And ctrl.Value = "" Then 'condition : si le type de contôle est une Textbox et si elle est vide
        ctrl.SetFocus 'place le curserur dans la Textbox
        MsgBox "Vous devez éditer ce champs !" 'message
    End If 'fin de la condition
Next ctrl 'prochain contrôle de l'userform
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

Discussions similaires

Réponses
21
Affichages
2 K
Réponses
7
Affichages
1 K
Réponses
1
Affichages
1 K
Retour