cs_henrry2
Messages postés14Date d'inscriptiondimanche 4 novembre 2007StatutMembreDernière intervention26 mai 2010
-
9 mai 2008 à 22:11
cs_henrry2
Messages postés14Date d'inscriptiondimanche 4 novembre 2007StatutMembreDernière intervention26 mai 2010
-
12 mai 2008 à 13:39
retraité, je profite de mes temps libres pour titiller excell etVB mais sans experience cela n'est pas facile.
cs_henrry2
Messages postés14Date d'inscriptiondimanche 4 novembre 2007StatutMembreDernière intervention26 mai 2010 9 mai 2008 à 22:24
Bonjour, mon pB est le suivant, j'ai une userform avec plusieurs textbox une listbox et un CommandButton qui actionne une macro.
comment faire pour que si l'utilisateur oublie de selectionner la listbox ou écrire dans une textbox de mettre la macro en veille tant que la sélection n'est pas faite et bien sur une fois la sélection effectuée re lancer la macro
merci
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 9 mai 2008 à 23:12
Salut,
voilà ce que je te propose, tu as besoin d'un Listbox et 2 zones de saisie(un textbox indéxé)
Option Explicit
Dim SVar As String
Private Sub Command1_Click()
' Variables de travail
Dim i As Integer
' Vérifie que toutes les zones soit remplies(TextBox indéxés)
For i = 0 To 1
If Text1(i).Text = vbNullString Then
MsgBox "Vous devez remplir toutes les zones de text !"
Exit Sub
End If
Next i
' Vérifie que l'user à bien choisi un item dans List1
If SVar = vbNullString Then
MsgBox "Vous devez séléctionnez un élément dans la List1 !"
Exit Sub
End If
End Sub
Private Sub Form_Load()
' Variables de travail
Dim i As Integer
' Remplie la List1
For i = 0 To 10
List1.AddItem "toto"
Next i
End Sub
Private Sub List1_Click()
SVar = List1.Text
End Sub
Note : On peux faire une sub, mais disont que là c'est simple pour comprendre
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 mai 2008 à 21:41
salut,
Exploreur -> pas d'index en VBA voyons ;)
henrry2 -> à retenir le fonctionnement qu'MPi a indiqué, à savoir on attend pas en boucle que l'utilisateur agisse, on travaille QUAND il a fait le nécessaire!
PS : attention à la rubrique du forum
<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_DIVERS_220.aspx Divers] / [infomsgt_DEBUTANTS_226.aspx Débutants] / obliger la selection d'une listbox</li>topic déplacé de VB6 vers VBA
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_henrry2
Messages postés14Date d'inscriptiondimanche 4 novembre 2007StatutMembreDernière intervention26 mai 2010 11 mai 2008 à 02:21
Merci pour toutes vos réponses qui sont en fait semblables.
Mais n'y a-t'il pas une solution qui permettrait de garder la macro en attente de la réponse aprés le message: "Vous devez séléctionnez un élément dans la List1!".
J'ai essayé waitTime mais pendant le réroulement de waitTime il n'est pas possible de sélectionner dans la listbox.
Enfin ceci pour essayer autre chose car vos solutions vont trés bien.
encore merci.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 mai 2008 à 02:36
c'est ici un problème de conception!
pose un bouton sur une form, tu ne vas pas boucler et bouffer les ressources du proc jusqu'à ce que l'utilisateur clique, tu ne fais rien et agit quand il clique !
si tu as autre chose en tête alors explique précisément ta question même si elle n'est pas liée à ce problème car tu pars sur une mauvaise piste...
VBA est évènementiel, pas procédural....
des solutions pour bidouiller il y en a, y'a même que çà.
indice : boolean + doevents
super, çà n'apporte rien
c'est ici un problème de conception!
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp