[VBA] : Contrôle de la présence d'une valeur dans une textbox
Résolu/Fermé
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
-
11 janv. 2013 à 15:21
anton26 Messages postés 31 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 25 janvier 2016 - 28 janv. 2013 à 14:37
anton26 Messages postés 31 Date d'inscription samedi 22 décembre 2012 Statut Membre Dernière intervention 25 janvier 2016 - 28 janv. 2013 à 14:37
Bonjour,
J'ai créé une userform dynamique avec un nombre n de textbox dynamiques. Quand je clique sur un bouton valider, les valeurs rentrées apparaissent sur une feuille Excel. Je souhaiterai qu'un message d'erreur apparaisse si une ou plusieurs textbox n'a (ont) pas de valeur(s). Comment pourrais-je programmer cela ?
Merci d'avance
J'ai créé une userform dynamique avec un nombre n de textbox dynamiques. Quand je clique sur un bouton valider, les valeurs rentrées apparaissent sur une feuille Excel. Je souhaiterai qu'un message d'erreur apparaisse si une ou plusieurs textbox n'a (ont) pas de valeur(s). Comment pourrais-je programmer cela ?
Merci d'avance
A voir également:
- [VBA] : Contrôle de la présence d'une valeur dans une textbox
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
10 réponses
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
11 janv. 2013 à 17:11
11 janv. 2013 à 17:11
Bonjour,
'Exemple test sur contrôles crees en dynamique
'dans UserForm
'Exemple test sur contrôles crees en dynamique
'dans UserForm
Private Sub CommandButton1_Click() Dim Cont As Control 'Boucle sur UF For Each Cont In Me.Controls 'Test si Objet TextBox et vide If TypeOf Cont Is MSForms.TextBox And Cont.Object.Value = "" Then MsgBox "Attention! Manque Info" & Cont.Name End If Next Cont End Sub
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
14 janv. 2013 à 18:33
14 janv. 2013 à 18:33
Bonjour,
Merci pour ce programme.
Le problème est que je n'arrive pas à l'adapter à mon bouton qui est créé dynamiquement.
Merci pour ce programme.
Le problème est que je n'arrive pas à l'adapter à mon bouton qui est créé dynamiquement.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
14 janv. 2013 à 18:37
14 janv. 2013 à 18:37
Bonjour,
Il aurait fallu le dire au depart!! Je cherche le code pour intercepter un click bouton cree dynamiquement.
A+
Il aurait fallu le dire au depart!! Je cherche le code pour intercepter un click bouton cree dynamiquement.
A+
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
14 janv. 2013 à 19:59
14 janv. 2013 à 19:59
Re,
Recuperez le fichier et accrochez-vous
https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
Bon courage
Recuperez le fichier et accrochez-vous
https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 15/01/2013 à 13:56
Modifié par lermite222 le 15/01/2013 à 13:56
Bonjour,
Bonjour fxx :-)
Il n'a probablement pas besoin d'un code aussi compliquer, avec
cette démo se sera plus simple.
Employer ta fonction.
Se servir de la démo pour ajouter du code au bouton de façon dynamique.
Adapter Combo au nom du bouton bien entendu.
A+
Edit : Mais il y a peut-être encore plus simple, montre le code employer pour ajouter
les contrôles dynamique
EDIT : Je le retrouvais plus celui-là
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour fxx :-)
Il n'a probablement pas besoin d'un code aussi compliquer, avec
cette démo se sera plus simple.
Employer ta fonction.
Se servir de la démo pour ajouter du code au bouton de façon dynamique.
Adapter Combo au nom du bouton bien entendu.
A+
Edit : Mais il y a peut-être encore plus simple, montre le code employer pour ajouter
les contrôles dynamique
EDIT : Je le retrouvais plus celui-là
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
15 janv. 2013 à 16:27
15 janv. 2013 à 16:27
Bonjour et bonne annee lermite,
Je n'avais que ce lien sous la main! Mais, avec un peu de reflection c'etait jouable.
Bye
Je n'avais que ce lien sous la main! Mais, avec un peu de reflection c'etait jouable.
Bye
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 15/01/2013 à 18:31
Modifié par lermite222 le 15/01/2013 à 18:31
Re,
Ont est déjà le 15... et je n'y pense plus beaucoup mais.. merci et bonne année à toi également.
Ont est déjà le 15... et je n'y pense plus beaucoup mais.. merci et bonne année à toi également.
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
15 janv. 2013 à 21:00
15 janv. 2013 à 21:00
Voila le code qui permet de créer dynamiquement mes textbox ainsi que le code qui permet de placer les valeurs dans une feuille. Actuellement, avec le code que j'ai écrit, cela ne fonctionne pas. Je souhaiterais que le message d'erreur apparaisse si un ou plusieurs textbox n'a pas été complètée.
Voici mon module de classe (ClasBT) pour mon bouton valider :
For i = 1 To n Set Obj = Me.Controls.Add("forms.Textbox.1") 'Créé n textbox With Obj .Left = 90 'Position des textbox à partir du bord gauche de l'userform .Top = 25 * i + 10 'Espacement entre chaque textbox .Width = 100 'Longueur de la textbox .Height = 18 'Hauteur de la textbox '.BackColor = &HC0FFFF 'Couleur du fond .BorderStyle = 0 'Style de bordure (0 ou 1) .FontName = "calibri" 'Police de l'écriture .FontBold = False 'Ecriture en gras .FontSize = 10 'Taille de la police .Enabled = True 'Possibilité d'écrire dans la case End With Next i Dim Bouton As MSForms.CommandButton 'Ajout d'un bouton valider Dim Cl As ClasBT Set Collect = New Collection Set CollectBT = New Collection Set Bouton = Me.Controls.Add("Forms.CommandButton.1", "Bt1", True) CollectBT.Add Bouton, "1" 'Ajouter à la collection d'objet Set Cl = New ClasBT 'Ajouter à la collection de classe Set Cl.GroupBoutons = Bouton Collect.Add Cl Public Sub ControlClick(nom As String, num As Long) 'Controle du bouton valider Dim Ctrl As Control Dim CtrlName As String Dim CtrlIndex As Integer Dim ctrlText As String For Each Ctrl In Me.Controls CtrlName = Ctrl.Name If InStr(CtrlName, "TextBox") = 1 Then 'recuperation du numero du Textbox CtrlIndex = Val(Mid(CtrlName, 8)) 'MsgBox CtrlIndex Worksheets("trimestre 1").Cells(CtrlIndex + 9, 1).Value = Ctrl.Text 'Positionnement des textbox dans une feuille (cells(ligne,colonne)) Worksheets("trimestre 2").Cells(CtrlIndex + 9, 1).Value = Ctrl.Text 'Positionnement des textbox dans une feuille (cells(ligne,colonne)) Worksheets("trimestre 3").Cells(CtrlIndex + 9, 1).Value = Ctrl.Text 'Positionnement des textbox dans une feuille (cells(ligne,colonne)) Else End If Next For i = 1 To n If Worksheets("trimestre 1").Cells(i + 9, 1).Value = "" Then 'Controle des valeurs rentrées dans les textbox Reponse = MsgBox("Merci de compléter chaque case." & Chr(10) & Chr(10) & "Pour complèter votre liste cliquez sur OK." & Chr(10) & "Pour revenir a la page d'accueil cliquez sur Annuler.", vbExclamation + vbOKCancel, "Erreur") If Reponse = vbCancel Then 'Si on clique sur Cancel Unload UserForm1 demarrage.Show Else End If End If Next i
Voici mon module de classe (ClasBT) pour mon bouton valider :
Option Explicit Public WithEvents GroupBoutons As MSForms.CommandButton Private Sub GroupBoutons_Click() Call UserForm1.ControlClick(GroupBoutons.Caption, GroupBoutons.Tag) End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 15/01/2013 à 22:41
Modifié par lermite222 le 15/01/2013 à 22:41
Huumm, je reconnais beaucoup de partie de ton code... :-)
Mais je vois que tu n'a pas encore tout à fait compris, c'est normal, c'est pas facile.
Tu n'a qu'un bouton ? Si oui, pas besoin de la collection d'objet. (Module de classe)
Le plus simple... poste un exemple de ton classeur, je verrais pour le rendre op.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Mais je vois que tu n'a pas encore tout à fait compris, c'est normal, c'est pas facile.
Tu n'a qu'un bouton ? Si oui, pas besoin de la collection d'objet. (Module de classe)
Le plus simple... poste un exemple de ton classeur, je verrais pour le rendre op.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
27 janv. 2013 à 21:11
27 janv. 2013 à 21:11
Oui c'est fort possible que tu le reconnaisse mais il est vrai que je suis débutant donc je ne comprends pas tout.
Pour le bouton je l'ai créé dynamiquement car je souhaite qu'il se place automatiquement à coté de la dernière textbox du userform.
Tu trouveras ci-joint mon fichier si tu souhaites y jeter un coup d'oeil.
Merci et bonne soirée.
http://dl.free.fr/getfile.pl?file=/pb9pbCSv
Pour le bouton je l'ai créé dynamiquement car je souhaite qu'il se place automatiquement à coté de la dernière textbox du userform.
Tu trouveras ci-joint mon fichier si tu souhaites y jeter un coup d'oeil.
Merci et bonne soirée.
http://dl.free.fr/getfile.pl?file=/pb9pbCSv
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 28/01/2013 à 02:13
Modifié par lermite222 le 28/01/2013 à 02:13
Re,
Un classeur avec tes TextBox
J'ai sauvé les données sur la Feuil1, vu qu'il n'y a pas les feuilles pour chaque élève.
Fais comme stipulé sur la feuil1.
Le bouton ne se valide que quand tout les textBox sont rempli
J'ai mis un max de remarques pour que tu puisse comprendre l'utilité des collections.
Tu dis..
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Un classeur avec tes TextBox
J'ai sauvé les données sur la Feuil1, vu qu'il n'y a pas les feuilles pour chaque élève.
Fais comme stipulé sur la feuil1.
Le bouton ne se valide que quand tout les textBox sont rempli
J'ai mis un max de remarques pour que tu puisse comprendre l'utilité des collections.
Tu dis..
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
anton26
Messages postés
31
Date d'inscription
samedi 22 décembre 2012
Statut
Membre
Dernière intervention
25 janvier 2016
28 janv. 2013 à 14:37
28 janv. 2013 à 14:37
Bonjour,
Merci beaucoup, cela fonctionne a la perfection. Je commence a comprendre comment fonctionnent les collections grâce a tes commentaires. Je n'avais pas pensé à verrouiller le bouton valider c'est une très bonne idée !
Merci pour le temps que tu y as consacré !
Merci beaucoup, cela fonctionne a la perfection. Je commence a comprendre comment fonctionnent les collections grâce a tes commentaires. Je n'avais pas pensé à verrouiller le bouton valider c'est une très bonne idée !
Merci pour le temps que tu y as consacré !