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 :

problème macro simple


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut problème macro simple
    bonjour
    j'ai créé les macros suivantes dans le même module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub DemandeNom()
    Dim vNom As String
        vNom = InputBox("Quel est votre nom?")
    End Sub
    Sub BonjourVousAppelProc()
    Dim vNom As String
        DemandeNom
        MsgBox ("Bonjour ") & vNom & ("Bonne lecture")
    End Sub
    quand je éxecute la deuxième macro j'ai simplement Bonjour Bonne lecture. je n'ai pas mon nom. Pourquoi?
    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    bonjour

    Déjà si tu veux appeler une macro dans une autre il faut écrire mais le plus simple est de faire qu'une macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub DemandeNom()
    Dim vNom As String
    vNom = InputBox("Quel est votre nom?")
    MsgBox ("Bonjour ") & vNom & "  " & ("Bonne lecture")
    End Sub

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut reponse
    je sais mais je me fais des petits exos pour apprendre et j'aimerai bien pour comprendre

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    ok

    Mais je ne pense pas qu'il soit possible de récupérer une variable d'une autre macro. Des membres beaucoup plus expert que moi te répondrons

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Essaie comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim vNom As String
    Sub DemandeNom()
    vNom = InputBox("Quel est votre nom?")
    End Sub
    Sub BonjourVousAppelProc()
    DemandeNom
    MsgBox ("Bonjour ") & vNom & (" Bonne lecture")
    End Sub
    et après, regarde le paragraphe consacré au niveau de variables.
    http://silkyroad.developpez.com/VBA/LesVariables/

    Cordialement.

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut merci
    merci ca marche comme ça

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,


    il y as plein de solution ... la première qui n'est pas la meilleure est d'utiliser une variable globale déclarée hors de tes procédures :
    voir : Erreur de portée


    Tu peu aussi transformer ta procédure en fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Function DemandeNom() as string 
        Dim vNom As String
       vNom = InputBox("Quel est votre nom?")
       DemandeNom = Vnom
    End Sub
    Sub BonjourVousAppelProc()
      MsgBox ("Bonjour ") & DemandeNom& (" Bonne lecture")
    End Sub
    ou passer une variable par référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub DemandeNom(ByRef mNom as string )
      mNom = InputBox("Quel est votre nom?")
    End Sub
    Sub BonjourVousAppelProc()
      Dim vNom As String
      DemandeNom  vNom
      MsgBox ("Bonjour ") & vNom & (" Bonne lecture")
    End Sub

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

Discussions similaires

  1. problème macro simple
    Par nat.olivier dans le forum Général VBA
    Réponses: 5
    Dernier message: 07/11/2012, 14h50
  2. Réponses: 1
    Dernier message: 01/03/2011, 14h57
  3. [VBA-E] Problème macro excel
    Par pontus21 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 19/05/2006, 18h38
  4. problème apostrophes simple et double
    Par dor_boucle dans le forum Langage
    Réponses: 9
    Dernier message: 20/02/2006, 13h48
  5. [Débutant] Problème servlet simple
    Par davycrocket dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 30/06/2004, 09h24

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