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

VBScript Discussion :

Executer macro excel via VBS


Sujet :

VBScript

Vue hybride

zoubli Executer macro excel via VBS 15/12/2006, 19h42
AlainTech En VBS, le typage se fait au... 17/12/2006, 04h16
zoubli Erreur ?? 18/12/2006, 10h46
zoubli Le code modifié : main... 18/12/2006, 10h50
SfJ5Rpw8 ? c'est quoi tous ces &... 18/12/2006, 13h03
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Par défaut Executer macro excel via VBS
    Bonsoir,
    Je programme un peu mais pas du tout en VB et dérivés. Je souhaite exécuter via un script VBS une macro qui se trouve dans un module d'un classeur Excel. Cette macro "main_fichier_DSI" prends 3 paramètres.
    J'ai réussi a trouver ce code mais j'ai une erreur WSH a l'exécution : "ligne 9, caract 9, erreur fin d'instruction attendue".
    J'aimerai avoir l'avis de connaisseur car je patine grave :-(
    Et merci a celles & ceux qui me fileront un tuyau.

    Voici mon code :

    main
    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
     
    Function main()
     appel_macro_NP()
    End Function
     
     
    Function appel_macro_NP()
     Dim Xl As Excel.Application
     Dim Wb As Excel.Workbook
     Dim NomMacro As String
     Dim FeuilleMEF As String
     Dim Arg1 As Integer
     Dim Arg2 As Integer
     
     Set Xl = CreateObject("Excel.application")
     Xl.Visible = True
     Set Wb = Xl.Workbooks.Open("Modèle de travail.xls")
     
     FeuilleMEF = "MEF Requètes DSI"
     Arg1 = 5
     Arg2 = 5
     Xl.run WB.Name &"!Module3.main_fichier_DSI" , &"FeuilleMEF", &Arg1, &Arg2
    End Function

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    En VBS, le typage se fait au moment de l'assignation, pas à la déclaration.
    Autrement dit, il faut supprimer tous les As des Dim.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Par défaut Erreur ??
    merci pour les conseils mais ayant enlevé les As de chaque déclaration j'ai maintenant une erreur que je ne pige pas.
    Il n'arrive pas a faire la substitution de la variable FeuilleMEF dans l'exécution.

    J'ai le message "Erreur de syntaxe" sur la ligne 23 (le Xl.run) caractère 48 (&FeuilleMEF après le &). Je ne comprends pas pourquoi ?
    Je suis pourtant bien positionné dans le répertoire du .xls.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Par défaut
    Le code modifié :

    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
    main
    Function main()
     appel_macro_NP()
    End Function
     
    Function appel_macro_NP()
     Dim Xl
     Dim Wb
     Dim NomMacro
     Dim FeuilleMEF
     Dim Arg1
     Dim Arg2
     
     Set Xl = CreateObject("Excel.application")
     Xl.Visible = True
     Set Wb = Xl.Workbooks.Open("Modèle de travail.xls")
     
     FeuilleMEF = "MEF Requètes DSI"
     Arg1 = 5
     Arg2 = 5
     Xl.run WB.Name &"!Module3.main_fichier_DSI" , &FeuilleMEF, &Arg1, &Arg2
    End Function

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ? c'est quoi tous ces & ...?

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 33
    Par défaut
    bonjour,

    oui je n'ai pas mis la syntaxe a jour, la ligne corrigée est :

    Xl.run WB.Name & "!Module3.main_fichier_DSI", Worksheet, Arg1, Arg2

    Ca me lance le classeur Excel mais en peut exécute la macro car il ne la trouve pas. J'ai le message :
    'Impossible de trouver la macro
    Modèle de travail.xls!Module3.main_fichier_DSI'

    Je comprends pas, la feuille MEF Requètes DSI contient une subroutine qui appelle la macro main_fichier_DSI enregistrée dans le module3.

    Quelqu'un y compernds quelque chose ?
    Images attachées Images attachées   

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

Discussions similaires

  1. [WD-2003] Executer macro excel via word
    Par Karatégirl77 dans le forum VBA Word
    Réponses: 6
    Dernier message: 27/08/2009, 12h11
  2. Chart Excel via VBS
    Par dsolheid dans le forum VBScript
    Réponses: 8
    Dernier message: 18/08/2009, 09h29
  3. [VB.NET][VBA-E]Execution d'une macro excel via application
    Par Yolak dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/12/2007, 07h46
  4. Executer macros Excel via Access
    Par Echizen1 dans le forum Access
    Réponses: 7
    Dernier message: 20/09/2006, 15h09
  5. supprimer popup macro (excel) via access
    Par Echizen1 dans le forum Access
    Réponses: 9
    Dernier message: 15/09/2006, 17h07

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