Quitter une procedure parmi d'autres sur USF

  • Initiateur de la discussion carlos
  • Date de début
C

carlos

Guest
Bonsoir

j'ai un bouton OK sur USf auxquel est associé une dizaine de macro qui se declenchent sucessivement les unes apres les autres en fonction des choix opérés par l'utilisateur sur des controles.

J'aimerais qu'a un moment donné si une macro n'est pas possible alors pouvoir quitter la suite evenementielle de ce bouton OK ;

Merci
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

une méthode toute simple consisite à inserer un boléen public et si ta macro ne peut s'executer tu le modifies de false à true par exemple puis tu testes avant de lancer la macro suivante que ton booléen soit toujours à false sinon exit sub

Bon courage
 

Abel

XLDnaute Accro
Bonsoir carlos,

Tu peux le faire en gérant un évennement 'erreur'.

Dans ta procédure, tu places un 'On error goto QuelquePart'.

'QuelquePart' représente une étiquette. 'GoTo' t'envoie à cet endroit du programme (le même que celui où est situé GoTo).

Quand une procédure ne se déroule pas, tu affecte un numéro d'erreur.

Dans le bout de code où tu traites les erreurs, tu testes ce numéro et s'il est rencontré tu place un 'Exit Sub'.

Attention, 'On error Goto' gère toutes les erreurs.

Il y a sans doute d'autres solutions. C'est celle que j'avais adoptée il y a quelques temps pour gérer le même type d'évènnement que dans ton cas. Ca marche bien.

Abel.
 

Abel

XLDnaute Accro
Re,

Oups, Pascal. Pas rafraichi.

Carlos, la méthode de Pascal est plus simple. En plus je l'ai utilisée aussi quand je n'ai qu'un type à gérer.

Tu place un Public Sortie as Boolean en tête d'un module.
Sortie ne pourra prendre que deux valeurs : vrai ou faux.

Sortie = True en début de code

Si une procédure ne s'exécute pas alors Sortie = False

Dans ton code sur la ligne juste après le USF qui ne s'est pas exécuté tu testes Sortie.
If Sortie = False then Exit Sub

Le programme sort de la Sub en cours. Si tu mets Exit Sub dans le code associé aux USF tu sors de ce programme.
S'il est placé dans le code 'principal' (celui qui appelle les USF) tu sors de ce code là.

En parlant de code, ce serait mieux si on pouvait le voir. Place ton fichier en pièce jointe.

Abel.
 
C

carlos

Guest
Bonjour Abel et Pascal76

tout d'abord merci pour votre aide


Je commence à comprendre ce que vous me proposez.

Je n'ai pas le temps pour le moment de le tester mais j'ai hate d'essayer votre boolean .

@ +
 

Discussions similaires

Statistiques des forums

Discussions
313 043
Messages
2 094 715
Membres
106 075
dernier inscrit
ronagaya