IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Définir une variable à l'extérieur d'une procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Par défaut Définir une variable à l'extérieur d'une procédure
    Bonjour,

    Je souhaite effectuer une macro qui exécute plusieurs macros à la suite du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub MACRO ()
     
    MACRO1
    MACRO2
    MACRO3
     
    End Sub
    Si une variable contenue dans la MACRO1 a une certaine valeur, je voudrais mettre un "exit Sub".
    Le problème est qu'à ce moment-là, on sort de la "MACRO1", mais les deux suivantes s'exécutent.

    Cette variable est une "InputBox. Est-il possible de la mettre en dehors des procédures? Et comment faut-il faire? Merci de votre aide John81

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonjour,


    transforme tes Macros en fonctions...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub Macro
     
      if Not MAcro1 then exit Sub
      MAcro2
      Macro3
    end sub
     
     
    Function Macro1 as boolean
      if not inputbox("Taper ok") = "OK" then
         Macro1 = False
         exit function
      end if
    ...
     
    'Tout c'est bien passé on renvoi true
    Macro1 = True
    end function

    tu dis quoi

  3. #3
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Ton message n'est pas clair du tout !

    D'abord, une variable ne peut pas être une inputBox, puisqu'une InputBox est une fonction.
    Ensuite, si tu fais un Exit,, c'est normal que tu sortes de ce que tu as demandé. Donc, Exit Sub sort de ta sub.
    Maintenant, si tu veux carérment sortir de ton programme, tu peux essayer End (tout seul, sans rien) ou alors, en plus propre, au lieu de faire des Sub (pour Macro1, Macro2, ...) tu fais des fonctions et tu testes le retour de tes fonctions pour savoir si tu fais la suite (Macro2, macro3) ou pas.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 124
    Par défaut
    Merci beaucoup à tous les deux. Bonne journée. John81

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2015, 15h22
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. [Smarty] Récuper une variable php à partir d'une variable Smarty
    Par SPKlls dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/04/2008, 17h40
  4. [Free Pascal] [2.2] Impossible d'assigner une variable de type T à une variable de type T
    Par Hibou57 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 12/10/2007, 12h31
  5. Réponses: 1
    Dernier message: 22/08/2007, 23h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo