Sortir d'un fonction VBA

Résolu
segumat Messages postés 2 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 14 octobre 2005 - 14 oct. 2005 à 11:13
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013 - 14 oct. 2005 à 14:21
Bonjour,

J'ai crée un userform avec 2 boutons, le premier lance une fonction (test dans l'exemple ci dessous), et je voudrais que le second me sorte de cette même fonction.

Merci pour vos suggestion
------------------------------------------------------------------------------------
Public Sub CommandButton1_Click()
Call test
End Sub


Public Sub CommandButton2_Click()
????
End Sub


Public Function test()
While x <> 10000000
Feuil1.Range("A1").Offset(x, 0) = 1
inc (x)
Wend
End Function
------------------------------------------------------------------------------------

4 réponses

BasicInstinct Messages postés 1471 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
14 oct. 2005 à 11:43
dim bAnnule as boolean
Public Sub CommandButton1_Click()
bAnnule=false
Call test
End Sub
Public Sub CommandButton2_Click()
bannule=true
End Sub


Public Function test()
While x <> 10000000 and not bAnnule
Feuil1.Range("A1").Offset(x, 0) = 1
inc (x)
doevents
Wend
End Function

BasicInstinct
3
segumat Messages postés 2 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 13:43
Merci pour la réponse, c par la que je suis passé en oubliant le doevent, par contre ce que je recherche c'est l'opposée de la procédure CALL permettant de stopper une fonctions.
0
BasicInstinct Messages postés 1471 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
14 oct. 2005 à 13:53
ca existe pas à ma connaissance.

BasicInstinct
0
zifnig Messages postés 69 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 4 mars 2013
14 oct. 2005 à 14:21
Tu peux utiliser la commande exit :

Soit exit sub :

Public Function test()
While x <> 10000000
if bAnnule then
exit sub
endif
Feuil1.Range("A1").Offset(x, 0) = 1
inc (x)
doevents
Wend
End Function

soit utiliser une boucle FOR et un Exit For.

Public Function test()
for x = 1 to 10000000
if bAnnule then
exit for
endif
Feuil1.Range("A1").Offset(x, 0) = 1
doevents
next x

End Function

Zifnig
http://zifnig.free.fr
0