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 :

Passer variable à autre macro dans autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Passer variable à autre macro dans autre classeur
    Bonjour,
    Je sèche sur un problème de transmission de variable.
    Dans un classeur 1, j'ai défini dans ma macro une variable public toto au niveau du module
    Je vais lire cette valeur dans le classeur ouvert.

    Ensuite j'ouvre un deuxième classeur et lance une autre macro dans celui ci pour écrire la valeur de la variable toto.
    Et ben elle est vide !

    Question comment transmettre une variable d'une macro d'un classeur vers la macro d'un autre classeur?
    Bien sûr je pourrais écrire directement la valeur de toto depuis ma macro initiale, mais en réalité ce n'est pas ce que je fais, c'est juste un modèle pour arriver à comprendre comment passer ma variable, qui sera utilisée dans la deuxième macro pour faire d'autre choses.
    Merci de vos conseils avisés.
    Denis

    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
     
    Dans le premier classeur dans le module 1
    Public toto
    Sub test()
    Range("A1").Select
    toto = ActiveCell.Value
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\****\Desktop\Classeur3.xls"
        Application.Run "Classeur3.xls!copie"
    End Sub
     
    Dans le deuxième classeur 
    Sub copie()
    Range("B1").Select
    ActiveCell.Formula = toto
    End Sub

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Deux classeurs = 2 projets VBA qui ne partagent rien, et donc pas les variables publiques.

    Par contre la méthode run permet de passer des arguments. Tu peux essayer
    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
    Dans le premier classeur dans le module 1
    Public toto
    Sub test()
    Range("A1").Select
    toto = ActiveCell.Value
        Workbooks.Open Filename:= _
            "C:\Documents and Settings\****\Desktop\Classeur3.xls"
        Application.Run "Classeur3.xls!copie",toto
    End Sub
     
    Dans le deuxième classeur 
    Sub copie(byval sFormule as string)
    Range("B1").Select
    ActiveCell.Formula = sFormule
    End Sub
    Si le "classeur3.xls" est bien le deuxième classeur...

    Cordialement,

    PGZ

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Points
    314
    Par défaut Ca marche !
    Merci Pierre.
    J'ai fait un test restreint et j'ai passé ainsi deux valeurs.
    Je vais mettre cela en pratique demain matin dès mon arrivée au turbin.
    Cordialement

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

Discussions similaires

  1. Passer variables XML sur une autre page
    Par metatron dans le forum Langage
    Réponses: 1
    Dernier message: 31/10/2012, 11h24
  2. [XL-2003] Rédiger une macro dans un classeur à partir d’une macro d'un autre classeur
    Par Roms un dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/11/2009, 15h44
  3. Passer d'un champ à l'autre automatiquement dans un formulaire
    Par Aglae69 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/10/2009, 20h16
  4. [Test-Excel] récupération des macros dans un classeur corrompu
    Par SilkyRoad dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/08/2006, 23h22

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