cs_math67
Messages postés5Date d'inscriptionmardi 1 juin 2004StatutMembreDernière intervention 2 juin 2004
-
1 juin 2004 à 10:47
Zigarn
Messages postés106Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 janvier 2005
-
13 août 2004 à 16:27
Bonjour, je débute en VB. ma question :
j'ai une boucle while dans uen sub qui effectue une comparaison entre une cellule d'uen table excel et une feuille d'une autre, pour en extraire certaines info. Bref. dans ma boucle j'affiche une form a un moment donné pour optenir confirmation de l'utilisateur et lui demander s'il veut utilisé les infos de la cellue trouvée. Mon problème, est que le programme semble continuer par derreiere et redemarrer... initialitation etc...
cf mon code.
sub ()
declaration...
initialisation...
while
cherche cellule
si cellule trouvée
affiche form
si utilisateur dit "ok" alors effectue les modif
sinon passe a la suite
wend
End Sub
j'ai ajouté un debug.print
....
debug.print("debut form")
affiche form
debug.print("fin de la form")
et j'obtiens pas debut form et fin de la form, mais les debug print com si j'avais relancé le programme.. c'est pas clair je sais mais le problème est chelou ??
normalement le programme se fige kan on ffé apparaitre une form ?? y a une manip a faire ? par ce k'en fait j'attends la reponse de l'utilisateur, elle conditionne la suite de mon prog:) ( j'veux eviter les boucles d'attentes.. )
merci bicoup !!
en C il existe les "return" pr les fonctions, ca serait une solution si c t applicable:) pr une form genre form retourne la valeur choix utilisateur
bon allé :d j'vous ecoute :d et m'grondé pas si c pas clair :d
Zigarn
Messages postés106Date d'inscriptionmardi 13 juillet 2004StatutMembreDernière intervention26 janvier 2005 13 août 2004 à 16:27
Une solution : le mode modal ! Tu ouvres ta form en faisant
form.show vbModal
et ton programme devrait du coup attendre la fermeture de ta form pour poursuivre.
Par exemple avec 2 form 1 & 2 ayant chacune un bouton command1 :
pour la form1 :
Private Sub Command1_Click()
For i = 1 To 10
Form2.Caption = i
Form2.Show vbModal
Next i
End Sub
et pour la 2 :
Private Sub Command1_Click()
Unload Me
End Sub
et tu verras sans le vbModal : ca change tout !
Par contre je sais pas comment tu peux faire pour récupérer le bouton qui a été frappé (sauf si c'est une MsgBox ou InputBox mais elles sont modales par défaut !). Peut-être avec une variable globale ...