1. #1
    Membre du Club
    Inscrit en
    mai 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : mai 2008
    Messages : 64
    Points : 57
    Points
    57

    Par défaut récupérer le retour d'un macro lancé par vbs

    Bonjour

    Merci d'avace pour votre aide.

    J'ai un scripts vbs qui lance la macro d'un fichier excel.

    la macro génére un fichier xml

    mon problème est que je ne sais pas comment récupérer le fichier xml (pour le renommer et le mettre dans un chemin spécifique plutard)

    XLStoXML est le nom de la macro (si je lance la macro manuellement ça donne une fenêtre qui propose ou mettre le fichier)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    objExcel.run "XLStoXML"

  2. #2
    Membre chevronné
    Inscrit en
    octobre 2011
    Messages
    1 154
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 154
    Points : 2 013
    Points
    2 013

    Par défaut

    Oui, faudrait-il montrer la structure générale ce qu'il est dedans le macro?

    En tout cas, supposons vous avez quelque chose de ce genre...
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub XLStoXML
    Dim xDoc as MSXML2.XMLDocument60
    xDoc=new MSXML2.XMLDocument60
    '....créer le xml document...
    'xDoc.Save "xyz.xml"
    'etc...
    End Sub

    Maintenant, changez le code pour qu'il ait ces petits changement.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function XLStoXML
    Dim xDoc as MSXML2.XMLDocument60
    xDoc=new MSXML2.XMLDocument60
    '....créer le xml document...
    'xDoc.Save "xyz.xml"
    'etc...
    XLStoXML=xDoc.xml
    End Function

    Comme ça le retour est une châine de texte du xml sérialisé. Et vous le retrouvez comme ça dans le script vbs.
    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim sxml
    sxml=objExcel.run("XLStoXML")

    On peut d'ailleurs tout à fait capable de retrouver le retour comme msxml2.domdocument aussi, et on fait différemment le retour de la fonction XLStoXML.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function XLStoXML
    Dim xDoc as MSXML2.XMLDocument60
    xDoc=new MSXML2.XMLDocument60
    '....créer le xml document...
    'xDoc.Save "xyz.xml"
    'etc...
    Set XLStoXML=xDoc
    End Function

    Et dans le script vbs, on fait simplement comme ça.
    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim oxml
    set oxml=objExcel.run("XLStoXML")

    Voilà !

Discussions similaires

  1. [XL-2010] Macro lancée par sélection cellule
    Par beabianchini dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/11/2015, 15h57
  2. Réponses: 6
    Dernier message: 25/04/2015, 09h58
  3. Réponses: 3
    Dernier message: 10/05/2010, 20h19
  4. [PHP 5.2] récupérer l'interieur d'un tag coupé par un retour ligne
    Par super-manu dans le forum Regex
    Réponses: 1
    Dernier message: 16/02/2009, 18h39
  5. Réponses: 1
    Dernier message: 27/03/2008, 18h42

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