cs_jppompon
Messages postés23Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention24 avril 2005
-
5 mars 2004 à 18:31
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
23 avril 2004 à 17:02
Grace à l'aide reçue par le forum, j'ai pu insérer dans un programme l'attente d'un évènement extérieur, et analyser la réponse. Exemple ci-dessous.
' boucle d'attente
Check1.Value = False
Check2.Value = False
While (Check1.Value <> vbChecked) And (Check2.Value <> vbChecked)
DoEvents
Wend
' Puis analyse
If Check1.Value = vbChecked Then..........
Check1 et Check2 sont des checkbox et ça marche très bien!
Mais j'aurai préférer mettre des boutons plutôt que des checkbox et là ça ne marche pas car le programme s'arrête, il n'y a pas de retour après le "Wend"
Est-ce normal ou bien existe t'il une solution que je n'ai pas découverte?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mars 2004 à 19:16
Salut jppompon
A mon avis, tu t'y prends mal :
Les boutons ont leurs propres évenements comme Command1_Click ...
Il suffit de mettre le code que tu veux exécuter dedans et le tour est joué. Pas la peine d'attendre avec une boucle
cs_jppompon
Messages postés23Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention24 avril 2005 5 mars 2004 à 21:02
Merci Jack. J'y avais évidemment pensé mais cela disperse et multiplie les petits morceaux de programme et au total la longueur.
Ce qui est difficile à gérer lorsque le programme prend de l'ampleur et qu'il faut le maintenir.
En tout cas si je comprends bien ta réponse cela n'est pas possible ??
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 5 mars 2004 à 21:53
Pour arreter uen boucle avec un bouton c'est facile :
1- Tu ajoutes une variable "ArretBoucle As Boolean" à ta feuille.
2- Juste avant le début de la boucle (jsute avant le While), tu la force à False "ArretBoucle = False"
3- Dans ta condition de While tu met "While Not ArretBoucle"
4- Dans l'EVT click de ton bouton tu mets "ArretBoucle = True"
5- C'est tout !!!!!
cs_jppompon
Messages postés23Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention24 avril 2005 7 mars 2004 à 12:06
C'est vrai je suis peut être un peu trop "procédural". Ca c'est les vieux restes du Fortran et du Pascal.
Je m'explique. Cette procedure permet d'attendre un évènement pour continuer, les évènements pouvant être différents. Après analyse de l'événement on peut continuer dans la même SUB sans être obligé de transferer le code dans plusieurs SUB correspondant aux différents évènements.
Bien sûr on peut aussi faire en sorte que les différents évènements retournent vers une nouvelle Sub, et là je dis que l'on se disperse, ce qui diminue la lisibilité du Programme.
Autre point comment faire pour utiliser le même évenement à différents endroit du programme ?
Si les boutons marchaient, cela serait bien par exemple d'utiliser le même bouton "Suprimer" à différents endroits du programme.
Si vous êtes arrivés au bout du message c'est que le vieux n'a pas été trop rasoir.
Merci à tous de discuter.
JPP
AZot
cs_arb
Messages postés40Date d'inscriptionlundi 18 février 2002StatutMembreDernière intervention 5 novembre 20124 23 avril 2004 à 16:47
Salut
Moi je souhaiterai traiter un evenement "reception sur MSComm" alors que je suis en attente d'un clic sur une msgBox.
en gros je reçois des infos en permanence et lors de l'ouverture d'une msgbox, l'evt reception n'est plus traiter tant que j'ai pas répondu à la msgbox : qq a t il une idée pour que malgré l'attente de la réponse au msgbox, je continue de recevoir sur Mscom