Obliger saisie dans textbox/combobox
Résolu
pftmarine
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
Iama Messages postés 319 Date d'inscription Statut Membre Dernière intervention -
Iama Messages postés 319 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ne trouvant pas de solutions qui me conviennent sur le forum et sur d'autres sites, je fais appel à vous !
J'ai crée un formulaire de saisie pour alimenter un tableau, tout fonctionne très bien mais je souhaiterai que lorsque l'utilisateur cliquera sur "Valider", il y ait une vérification que tous les combobox et textbox est bien était renseignés sinon qu'il apparaisse un message d'erreur lui disant de bien renseigner tous les champs. (J'ai 15 combobox qui doivent toutes être renseigné et 3 textbox dont 2 qui peuvent être vides )
Pour l'instant voici un aperçu de mon code pour mon bouton "Valider" :
Je vous remercie d'avance :)
Ne trouvant pas de solutions qui me conviennent sur le forum et sur d'autres sites, je fais appel à vous !
J'ai crée un formulaire de saisie pour alimenter un tableau, tout fonctionne très bien mais je souhaiterai que lorsque l'utilisateur cliquera sur "Valider", il y ait une vérification que tous les combobox et textbox est bien était renseignés sinon qu'il apparaisse un message d'erreur lui disant de bien renseigner tous les champs. (J'ai 15 combobox qui doivent toutes être renseigné et 3 textbox dont 2 qui peuvent être vides )
Pour l'instant voici un aperçu de mon code pour mon bouton "Valider" :
'Pour le bouton Valider
Sub cmdOK_Click()
Dim L As Integer
L = Sheets("Janvier").Range("a1000").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
Range("A" & L).Value = ComboBox1 'Nom
Range("B" & L).Value = ComboBox6 'Prénom
Range("H" & L).Value = ComboBox5
Range("I" & L).Value = ComboBox4
Range("J" & L).Value = ComboBox10
Range("K" & L).Value = ComboBox9
Range("L" & L).Value = ComboBox7
Range("M" & L).Value = ComboBox13
Range("N" & L).Value = TextBox1 'Date d'entrée
Range("O" & L).Value = TextBox3 'Date de sortie - Peut être vide
Range("Q" & L).Value = ComboBox3
Range("S" & L).Value = ComboBox18
Range("T" & L).Value = ComboBox11
Range("U" & L).Value = ComboBox15
Range("V" & L).Value = ComboBox16
Range("W" & L).Value = ComboBox17
Range("X" & L).Value = TextBox4 'Observations - Peut être vide
Unload Me
End Sub
Je vous remercie d'avance :)
A voir également:
- Obliger saisie dans textbox/combobox
- Saisie gestuelle iphone - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
- Gboard saisie vocale - Accueil - Applications & Logiciels
- Saisie automatique - Guide
4 réponses
Bonjour, il faudrait rajouter ce code en début de macro :
Pour que cette Marco fonctionne, il faut que le formulaire s'appelle Userform1, que les ComboBox s'appelle ComboBox1 à ComboBox15 et les TextBox TextBox1 à TexBox3
Nb_cmb = 15
Nb_Txb = 3
for i = 1 to Nb_cmb
if userform1.controls("ComboBox" & i)="" then
msgbox("Merci de remplir tous les champs.")
exit sub
end if
next i
for i = 1 to Nb_Txb
if userform1.controls("TextBox" & i)="" then
msgbox("Merci de remplir tous les champs.")
exit sub
end if
next i
Pour que cette Marco fonctionne, il faut que le formulaire s'appelle Userform1, que les ComboBox s'appelle ComboBox1 à ComboBox15 et les TextBox TextBox1 à TexBox3
Bonjour
Renumerote tes combobox pour avoir des n°s qui se suivent de 1 à 14
Code à mettre en début de ta macro
bad = 0
For n = 1 To 14
If Me.Controls("ComboBox" & n).Value = "" Then bad = bad + 1
Next n
If Me.TextBox1.Value = "" Then bad = bad + 1
If bad > 0 Then MsgBox (bad & " renseignements manquants, validation impossible") :exit sub
Cdlmnt
Renumerote tes combobox pour avoir des n°s qui se suivent de 1 à 14
Code à mettre en début de ta macro
bad = 0
For n = 1 To 14
If Me.Controls("ComboBox" & n).Value = "" Then bad = bad + 1
Next n
If Me.TextBox1.Value = "" Then bad = bad + 1
If bad > 0 Then MsgBox (bad & " renseignements manquants, validation impossible") :exit sub
Cdlmnt
Bonjour pftmarine
Pour m'a part, je contrôle les entrées, une par une, au début de la validation.
C'est un peu bourrin, mais ça me permet d'adapter mon message en fonction de la donnée manquante.
Ou de vérifier si une donnée correspond à l'entrée attendu (date, nombre) pour les TextBox1 ou autre
style:
if ComboBox1= "" then MsgBox("..."): end sub
Une autre solution
cordialement
Pour m'a part, je contrôle les entrées, une par une, au début de la validation.
C'est un peu bourrin, mais ça me permet d'adapter mon message en fonction de la donnée manquante.
Ou de vérifier si une donnée correspond à l'entrée attendu (date, nombre) pour les TextBox1 ou autre
style:
if ComboBox1= "" then MsgBox("..."): end sub
Une autre solution
cordialement
Merci à tout le monde pour les réponses !
J'ai finalement appliqué la dernière un peu "bourrin" ;) mais plus rapide et plus simple à comprendre et à mettre en place pour moi qui débute en vba.
De plus ce n'est pas moi qui gérera le fichier ensuite et la personne qui prendra le relais s'y connait peu en vba donc si elle doit modifier le code il vaut mieux quelque chose de simple à comprendre.
Et par contre autre question, je souhaiterai limiter la saisie des dates, c'est à dire que par exemple dans mon formulaire de janvier je voudrais qu'il ne soit possible de saisir qu'une date comprise entre le 01/01/2014 et 31/01/2014 (j'ai 1 textbox date de début et 1 textbox de fin).
Merci encore !
J'ai finalement appliqué la dernière un peu "bourrin" ;) mais plus rapide et plus simple à comprendre et à mettre en place pour moi qui débute en vba.
De plus ce n'est pas moi qui gérera le fichier ensuite et la personne qui prendra le relais s'y connait peu en vba donc si elle doit modifier le code il vaut mieux quelque chose de simple à comprendre.
Et par contre autre question, je souhaiterai limiter la saisie des dates, c'est à dire que par exemple dans mon formulaire de janvier je voudrais qu'il ne soit possible de saisir qu'une date comprise entre le 01/01/2014 et 31/01/2014 (j'ai 1 textbox date de début et 1 textbox de fin).
Merci encore !
Rebonsoir
En tenant compte du cas ou il n'y a pas de date de fin
https://www.cjoint.com/?3GCvqZSGv5i
Cordialement
En tenant compte du cas ou il n'y a pas de date de fin
https://www.cjoint.com/?3GCvqZSGv5i
Cordialement