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

VBA Discussion :

problème macro simple


Sujet :

VBA

  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 écrite les deux macros suivantes dans un 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 j'éxécute la deuxième macro seule le message Bonjour bonne lecture apparaît Pourquoi je n'ai pas le nom
    Merci de votre aide
    Nathalie

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Bonjour Nathalie,

    Le nom que tu tapes dans l'inputBox n'est pas visible dans ton MessageBox parce que la variable vNom diffère entre tes deux macros.
    En gros, tu as créé 2 variables vNom: une dans DemandeNom qui contient le texte que tu as tapé et l'autre dans BonjourVousAppelProc qui est vide.

    Dans ton cas, tu n'as besoin que d'une seule macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub BonjourVousAppelProc()
        Dim vNom As String
        vNom = InputBox("Quel est votre nom?")
        MsgBox ("Bonjour ") & vNom & ("Bonne lecture")
    End Sub

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pour que ça fonctionne, il faut une procédure et une fonction.

    Une "porcédure" ne renvoit rien, alors qu'une fonction peut renvoyer une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function DemandeNom() As String
     
        DemandeNom = InputBox("Quel est votre nom?")
    End Function
     
    Sub BonjourVousAppelProc()
    Dim vNom As String
        vNom = DemandeNom
        MsgBox ("Bonjour ") & vNom & ("Bonne lecture")
    End Sub
    On peut encore réduire un peu les lignes de code en évitant une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function DemandeNom() As String
     
        DemandeNom = InputBox("Quel est votre nom?")
    End Function
     
    Sub BonjourVousAppelProc()
     
        MsgBox ("Bonjour ") & DemandeNom & ("Bonne lecture")
    End Function
    Si tu souhaites malgré tout utiliser une variable, il faut la déclare dans ton module et plus dans une procédure ou une fonction, sans quoi, sa vie se limite à la fonction ou la procédure.

    Si tu veux aller un peu plus loin, voilà un peu de lecture : http://heureuxoli.developpez.com/office/word/vba-all/
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  4. #4
    Expert éminent

    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 : 54
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour,

    j'ajoute que les parenthèses sur la ligne du msgbox sont inutiles.

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut Max,
    Citation Envoyé par Maxence HUBICHE Voir le message
    Bonjour,

    j'ajoute que les parenthèses sur la ligne du msgbox sont inutiles.
    Désolé, ce sont les aléas d'un copier coller.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Expert éminent

    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 : 54
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Salut Olivier

    Je n'en doute pas !
    Si tu voyais la bourde que je viens d'écrire !!!
    Je dis : ne mets pas 2 \ dans ton URL ! Voici un exemple de code
    et qu'est-ce que je mets dans l'exemple de code ? 2\ dans l'URL !
    Je crois même que c'est pire

Discussions similaires

  1. problème macro simple
    Par nat.olivier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/11/2012, 14h49
  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