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 :

Exécution Macro VBA Excel via VBscript


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 264
    Par défaut Exécution Macro VBA Excel via VBscript
    Bonjour,


    J'ai un script VBS qui permet de lancer une macro VBA Excel nommée "Macopie" du fichier FICTEST.xlsm ci-joint.
    Mon script VBS marhe très bien quand quand je saisi en dure le chemin de macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ObjExcel.Application.Run "'C:\Users\toto\FICTEST.xlsm'!Module1.Macopie"
    Je souhaiterai cependant l'optimiser en rendant le chemin paramétrable, mais j'obtiens un message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Microsoft Excel ne peut accéder au fichier << "'C:\Users\toto\FICTEST.xlsm' >>.
    Voici le contenu de mon script VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim ObjExcel
    Path = WScript.Arguments.Item(0)
    ObjExcel = CreateObject("Excel.Application")
    ObjExcel.Application.Run chr(34) & "'" & Cstr(Path) & "FICTEST.xlsm'!Module1.Macopie" & chr(34)
    Set ObjExcel = Nothing
    WScript.Quit
    Pour lancer mon VBS je saisi la ligne de commande ci-dessous sur mon terminal :

    cscript.exe Monvbs.vbs C:\Users\toto\


    Auriez-vous des idées à me proposer ?

    Par avance merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    euh, ça sert à quoi tes chr(14) dans le nom du fichier passé à run ????

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 264
    Par défaut
    Hello umfred,

    Merci d'avoir pris du temps pour mon problème.
    Les ch(34) permettent de mettre en griffes une chaine de caractères. Par exemple ch(34) "" & "Merci" & ch(34) renverra ""Merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    Si tu veux afficher les guillemets, double les dans ta chaine
    "voile un ""mot"" entre guillemet"
    pour moi c'est ce qui gène dans ton code (tu les as pas utilisé dans ton 1er code qui fonctionne)

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 536
    Billets dans le blog
    67
    Par défaut VBA Excel
    Bonjour,

    Je ne connais que VBA, alors voilà ce que j'ai pu faire avec une macro contenue dans le module d'un classeur situé dans le même dossier que FICTEST.xlsm :

    Code VBA : 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
    Public Sub macro1()
        Dim ObjExcel As Object
        Dim ObjWkb As Object, path As String
     
        path = ThisWorkbook.path & "\" 'WScript.Arguments.Item(0)
     
        Set ObjExcel = CreateObject("Excel.Application")
        Set ObjWkb = ObjExcel.Workbooks.Open(CStr(path) & "FICTEST.xlsm")
     
        ObjExcel.Application.Run "'FICTEST.xlsm'!Macopie"
     
        'Objwkb.Close
        Set ObjWkb = Nothing
     
        'ObjExcel.Quit
        Set ObjExcel = Nothing
     
        'WScript.Quit
    End Sub


    Si ça peut aider ..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    Pour continuer dans le sens que j'ai indiqué et confirmé par User; j'ai retrouvé une macro qui fait appel à la macro d'un autre classeur dans mes fichiers, et je ne rajoute pas de guillemets supplémentaires autour (juste les guillemets simples)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    path = "c:\chemin\vers\fichier\excel.xlsm"
    application.run "'" & path & "'!" & NomMacro

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

Discussions similaires

  1. [XL-2007] Gestion de document Word via macro VBA excel
    Par guiMM dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2011, 15h30
  2. Réponses: 2
    Dernier message: 07/09/2010, 12h39
  3. [XL-2003] Fermeture de Processus Word via Macro VBA Excel
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2009, 19h46
  4. Auto install macro vba excel
    Par zootman dans le forum Installation, Déploiement et Sécurité
    Réponses: 6
    Dernier message: 14/06/2006, 21h30
  5. [VBA-E] macro VBA excel suppression graphiques
    Par totoza dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/05/2006, 08h45

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