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 Word Discussion :

Word lance une macro dans Userfom d'un fichier excel


Sujet :

VBA Word

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 135
    Points : 43
    Points
    43
    Par défaut Word lance une macro dans Userfom d'un fichier excel
    Bonjour,

    J'ai un fichier Excel et un fichier Word ouvert.
    Je voudrais à partir du fichier word lancer une macro "test" (avec variables) dans le fichier excel qui est contenu dans le UserForm1. Je n'y arrive pas alors que j'arrive à lancer la meme macro dans module1 de ce meme fichier excel. Y a t'il une protection ou une chemin different ?

    Macro du fichier word appellant la macro "test" du fichier excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test2()
    nomexcel = "ADHERENTS.xlsm"
    GetObject(, "Excel.application").Application.Run nomexcel & "!UserForm1.test", var1, var2, var3
    End Sub
    je vous remercie

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gandolfi Voir le message
    Bonjour,

    Il vous faut sans doute créer une instance Excel depuis Word puis ouvrir votre fichier Excel avec cette instance.

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 135
    Points : 43
    Points
    43
    Par défaut
    Mais le fichier Excel est déja ouvert.

    A partir de Word, j'arrive à appeler une macro contenu dans un module de la feuille Excel. Par contre je n'arrive pas à appeller une macro contenue dans le userform1. Peut etre que c'est considéré comme une feuille et qu'il faut que je rentre un parametre feuille ? Mais j'ai beau chercher je ne trouve pas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gandolfi Voir le message
    A défaut, essayez de mettre les lignes de votre macro contenue dans le contrôle du Userform dans une autre macro dans un module standard, le contrôle Active X ne faisant qu'appeler la nouvelle macro.

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 135
    Points : 43
    Points
    43
    Par défaut
    Merci. je sais que j'ai cette solution.
    Mais la macro contenu dans le userform était plus simple à faire fonctionner du fait que j'ai déclarer des variables globales.
    Si je la met dans un module je vais devoir passer toutes ces variables d'une macro à l'autre (3 en tout à déplacer). En plus je ne comprend pas pourquoi un Userform est inaccessible .

    - Y a t'il un moyen de déplacer la macro de userform à module sans devoir lui passer toutes les variables dans le CALL ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par gandolfi Voir le message
    Pour faire ce que vous voulez faire, je serais passé naturellement par une nouvelle instance d'Excel pour pouvoir contrôler les objets, c'est la justification de ma première réponse.
    Sinon, vous pouvez passer vos valeurs en paramètres à la nouvelle macro.

    Pour le reste, je ne peux vous aider plus. Bon courage pour la suite.

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    En partant, partir de Word pour lancer une macro dans Excel, cela dépasse l'entendement dans 99,999 % des cas; surtout quand Excel est déjà ouvert et qu'il peut être piloté par automation et sans lancer de macro dans Excel. Si tu veux absolument une patente pareille, tu peux passer tes trois valeurs de différentes façons :

    1) mettre les valeurs dans 3 cellules d'Excel par Automation
    2) mettre les valeurs dans un fichier à partir de Word et relire le fichier dans Excel (Open dans l'aide de VBA, ou avec FileSystemObject dans la bibliothèque Microsoft Scripting Runtime). (Cherche Script56.CHM sur ton disque ou ramasse ce document-là
    3) Créer un fichier ini (API Windows)
    4) Écrire les valeurs dans le registre à partir de Word (SaveSetting et GetSetting)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. [2013] Remplacement d'un texte dans word par une macro sur excel
    Par Benoit L dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 06/02/2015, 14h39
  2. [XL-2003] savegarder dans un meme document word depuis une macro Excel
    Par jabranejb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2012, 22h51
  3. [OL-2010] Planificateur de tache lance une macro dans Outlook via vbs
    Par pimberti dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 16/08/2011, 18h09
  4. [XL-2003] Inserer une variable dans un nom de fichier Excel
    Par Zertozerto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2011, 11h35
  5. Ecrire dans un document Word avec une macro Word
    Par deruyter dans le forum VBA Word
    Réponses: 2
    Dernier message: 14/01/2010, 00h24

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