Obliger la selection d'une listbox [Résolu]

Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Dernière intervention
26 mai 2010
- - Dernière réponse : cs_henrry2
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Dernière intervention
26 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.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Dernière intervention
26 mai 2010
3
Merci
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

Merci cs_henrry2 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_henrry2
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Au début de ta procédure (ou macro), tu dois vérifier l'état de la listbox.
If MaListbox.ListIndex = - 1 then Exit sub

Si ListIndex = -1, c'est qu'aucun item n'est sélectionné et tu sors de la procédure.
Bien sûr, tu peux mettre un MsgBox explicatif, au besoin...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

Merci cs_MPi 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
3
Merci
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


A+
Exploreur

 Linux a un noyau, Windows un pépin

Merci cs_Exploreur 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Exploreur
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
3
Merci
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

Merci PCPT 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Dernière intervention
26 mai 2010
3
Merci
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.

Merci cs_henrry2 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_henrry2
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
3
Merci
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

Merci PCPT 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Dernière intervention
26 mai 2010
0
Merci
J'ai bien compris le Pb. Je vais donc en rester là
encore une fois merci à tous
Commenter la réponse de cs_henrry2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.