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 :

Macro lancée à partir d'un autre classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 22
    Par défaut Macro lancée à partir d'un autre classeur
    Bonjour,

    Je réalise actuellement une macro avec Excel 2010 dans laquelle j'ai un fichier avec un tableau. Après avoir rempli ce tableau je clique sur un bouton dans lequel je lance la macro qui est sur un autre classeur excel (Je lance directement la macro et je n'utilise pas le "Application.run" car je dois aller récupérer des infos dans le premier fichier et qu'il me met des erreurs en faisant ça). Mais le problème c'est qu'avec cette macro, je dois aller ouvrir un troisième classeur pour y mettre les infos récupérés et que le troisième classeur n'a pas toujours le même nom.

    Je ne sais pas si je me suis fais comprendre donc pour essayer d'être plus clair:
    - J'ai un fichier qui contient la macro
    - Deux fichier qui peuvent appeler cette macro
    - Un fichier qui reçoit les infos et qui ne doit pas avoir le même nom en fonction du fichier qui a appeler la macro
    - Si j'utilise "Application.run" je ne peux plus récupérer les infos

    J'ai donc voulu mettre en paramètre le nom du fichier qui reçoit en fonction du fichier qui lance la macro mais on ne peut apparemment pas affecter les valeurs de paramètres directement dans le bouton....

    HEEEEEEEEEEEEEEEEEELP!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu peux utiliser "Application.Run" et lui passer les arguments que tu souhaites comme par exemple le chemin d'un fichier à ouvrir par la macro appelée :
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    Sub AppelMacro()
     
        Dim FichierAppeler As String
        Dim FichierArgument As String
        Dim NomMacro As String
        'Dim NomModule As String
        Dim AutreArgument As String
     
        FichierAppeler = "D:\MonDossier\Classeur1.xls" 'celui contenant la macro
     
        FichierArgument = "D:\Dossier1\Dossier2\Classeur en argument.xls" 'passé en argument à la macro
     
        NomMacro = "MaMacroAMoi" 'macro appelée
     
        AutreArgument = 1.2345 'si besoin d'autres arguments
     
        'NomModule = " Module1"
     
        'avec le nom du module si tu veux (nécessaire si c'est un module de feuille ou classeur)
        'Application.Run "'" & FichierAppeler & "'!" & NomModule & "." & NomMacro, Arg1, Arg2
     
        'et sans le nom du module (si module standard, pas nécessaire)
        Application.Run "'" & FichierAppeler & "'!" & NomMacro, FichierArgument, AutreArgument
     
    End Sub
    Exemple de macro appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Sub MaMacroAMoi(CheminClasseur As String, Argument As Single)
     
        MsgBox CheminClasseur & vbCrLf & Argument
        '...
        '...
        '...
     
    End Sub
    si le classeur n'est pas ouvert, il le sera dès l'appel.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 22
    Par défaut
    Oui merci j'ai en effet opté pour cette solution, elle ne m'est apparu que plus tardivement.

    Je te remercie toutefois pour ton aide!

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

Discussions similaires

  1. [XL-2007] Créer du code dans le classeur A à partir d'un autre classeur B
    Par geo909 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2009, 17h36
  2. Exécuter macro à l'ouverture d'un autre classeur
    Par manu22 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 01/08/2008, 15h32
  3. Ouvrir un classeur à partir d'un autre classeur
    Par nomade333 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2008, 15h55
  4. [VBA-E]Fermer un classeur en réseau à partir d'un autre classeur
    Par Pietro_L dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/05/2007, 10h08
  5. controler checkBox à partir d'un autre classeur
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/07/2006, 09h26

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