Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : janvier 2018
    Messages : 38
    Points : 21
    Points
    21

    Par défaut VBA : Appel d'une macro excel à partir d'une macro sur word

    Bonjour à tous,

    Je suis en train de coder la dernière parti d'un programme VBA de publipostage assez complexe, dont la dernière partie me donne du fil à retordre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MainMacro()
     
        Adresse = ShowFileDialog()
        Call MacroExcel
        Call Format
        Call DocSource(Adresse)
        Call Etiquette1
        Call Etiquettes24
        Call ToutesEtiquettes
    End Sub
    La fonction ShowFileDialog me permet de récupérer l'adresse du document Excel pour lequel on souhait appliquer le programme. La fonction MacroExcel a pour objectif d'appeler la macro du document Excel sélectionné, qui se situe dans le Module2 et qui s'appelle MainMacro2.

    Mon code actuel, pour cette macro est

    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
    Sub MacroExcel()
     
     
    Dim myExcel As Excel.Application
    Dim mywbk As Excel.Workbook
    Dim mySheet As Excel.Worksheet
     
     
    Set myExcel = CreateObject("excel.application")
    Set mywbk = ActiveDocument ' Définit le fichier EXCEL à ouvrir
    Set mySheet = mywbk.Worksheets("DataSheet")
    myExcel.Visible = True
     
    Application.Run "mywbk!Module2!MainMacro2"
    End Sub
    mais, je ne sais pas ce qui ne fonctionne pas, je ne sais même pas si j'ai envisagé le problème correctement.

    Est ce que quelqu'un saurait comment résoudre ce problème ?

    Merci infiniment pour votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : janvier 2018
    Messages : 38
    Points : 21
    Points
    21

    Par défaut

    Re !

    J'ai essayé de contourner le problème en utilisant un ByVal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub MacroExcel(ByVal Adresse As String)
    ActiveDocument.MailMerge.Fields.AddNext Name:=Adresse
    Application.Run "Module2!MainMacro2"
    End Sub
    Je sens que je ne sui pas loin de la réponse, dites moi ce que vous en pensez...
    Si vous avez même un élément de réponse, n'hésitz pas, je suis un peu en galère :/

    NB: Je travail sur Word ! (et j'appelle une macro Excel) Je me suis rendu compte en me relisant que ça pouvait être ambiguë... Désolé

    Merci

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : janvier 2018
    Messages : 38
    Points : 21
    Points
    21

    Par défaut

    Comme ça ça marche, pour ceux que ça peut interesser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MacroExcel(ByVal Adresse As String) 'Lance la macro Excel MainMacro2 ou la macro PrimaryMacro
     
     
        Dim MonObjet2 As Object
        Set MonObjet2 = GetObject("", "Excel.Sheet")
     
        MonObjet2.Application.Visible = True
        MonObjet2.Application.Workbooks.Open FileName:=Adresse
        MonObjet2.Application.Run "MainMacro2"
     
     
    End Sub

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

Discussions similaires

  1. Réponses: 68
    Dernier message: 06/04/2016, 16h22
  2. Réponses: 1
    Dernier message: 25/03/2013, 08h39
  3. [Débutant] checker une checkbox a partir d'une cellule excel
    Par Attila54 dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/05/2012, 13h12
  4. insertion dans une table excel à partir d'une requête access ?
    Par cameleon1881 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/04/2009, 17h57
  5. Réponses: 27
    Dernier message: 16/12/2008, 11h39

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