Sortir d'un fonction VBA [Résolu]

segumat 2 Messages postés vendredi 14 octobre 2005Date d'inscription 14 octobre 2005 Dernière intervention - 14 oct. 2005 à 11:13 - Dernière réponse : zifnig 69 Messages postés vendredi 10 septembre 2004Date d'inscription 4 mars 2013 Dernière intervention
- 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
------------------------------------------------------------------------------------
Afficher la suite 

4 réponses

Meilleure réponse
BasicInstinct 1471 Messages postés mardi 5 février 2002Date d'inscription 20 octobre 2014 Dernière intervention - 14 oct. 2005 à 11:43
3
Merci
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

Merci BasicInstinct 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

segumat 2 Messages postés vendredi 14 octobre 2005Date d'inscription 14 octobre 2005 Dernière intervention - 14 oct. 2005 à 13:43
0
Merci
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.
BasicInstinct 1471 Messages postés mardi 5 février 2002Date d'inscription 20 octobre 2014 Dernière intervention - 14 oct. 2005 à 13:53
0
Merci
ca existe pas à ma connaissance.

BasicInstinct
zifnig 69 Messages postés vendredi 10 septembre 2004Date d'inscription 4 mars 2013 Dernière intervention - 14 oct. 2005 à 14:21
0
Merci
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

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.