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 :

Appeler une macro avec arguments d'un autre module avec un nom dépendant d'une variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2018
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Appeler une macro avec arguments d'un autre module avec un nom dépendant d'une variable
    Bonjour à tous,

    Je viens vous voir pour mon problème de macro...

    J'ai créé une macro dans un autre module que celui de la macro initiale. J'ai pour chaque personne une sub différente. je voudrais donc dans une boucle pour détailler le cas de chaque personne et appeler chaque macro correspondante au fur et à mesure. La macro de destination a également des arguments... Comment puis-je faire pour appeler cette macro et envoyer les arguments nécessaires?


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub SetVar()
     
    Dim C As String
    Dim C1 As String
    Dim C2 As String
    Dim Personne As String
    Dim Lamacro As String
    Dim var As String
     
    C = "C:\...\Temp"
    C1 = "C:\Envoi" & " " & Format(Date, "dd") & " " & Format(Date, "mmmm") & " " & Format(Date, "yyyy")
    C2 = "C:\...\Automatisation\"
     
    Application.DisplayAlerts = False 'On désactive les boites de dialogue
    Set Principal = ThisWorkbook
    Set Menu = Principal.Sheets("Menu")
     
    For i = 5 To 16
     
        If Menu.Cells(i, 3) = "Yes" Then
     
            Personne = Cells(i, 1)
            var = Cells(i, 1) & ".xlsm" ' il existe un fichier pour chaque personne
            Application.ScreenUpdating = False
            Application.EnableEvents = False
            Workbooks.Open Chauff2 & var
            Lamacro = "Module3." & Personne
            Application.Run "Lamacro"(C ,C2)
            Workbooks(var).Save
            Workbooks(var).Close
     
        End If
     
    Next 
     
    End Sub
    Sachant que dans module 3 il y a une sub pour chaque Personne qui a besoin de 2 strings pour fonctionner

    merci de votre aide!!

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    De mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Application.Run ("Lamacro " & C & " " & C2)

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    J'ajouterai, pas la peine de citer le module
    Lamacro ="Module3." & Personne

    Cdlt

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Application.Run "Macro" ,Agument1,Argument2
    Application.Run "Lamacro", C, C2
    Dernière modification par Invité ; 08/02/2019 à 17h20.

Discussions similaires

  1. Appel d'une macro a partir d'un autre module
    Par jean bapt' dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/08/2012, 13h12
  2. [Batch] Appel de macro avec paramètres
    Par dewey01 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 03/02/2011, 15h22
  3. appeller une variable par le contenu d'une autre
    Par Walkyrie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/09/2010, 17h36
  4. Réponses: 7
    Dernier message: 28/08/2008, 13h32
  5. [Access] Expression avec une clause SQL faisant appel à une variable
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/06/2006, 14h02

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