VBS active une macro Excel

jeje173 Messages postés 4 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Je sais que d'autres post parlent de ce sujet mais je n'y ai pas trouvé de solution à mon problème.

Je créér des script VBS avec SAP.

L'un d'entre eux à pour mission de receuillir une information et de l'extraire dans Excel.

A ce moment-là je voudrais executer une macro se trouvant dans mes macros personelles mais à chaque fois la macro demandée n'est pas trouvée.

la commande que j'essaye est

Dim x1
Set x1 = CreateObject("Excel.Application")

x1.visible = True
X1.run "Nomdelamacro"

set x1 = nothing

Sachant qu'au moment où je veux lance la macro, le fichier Excel est juste ouvert et non enregistré.

En vous remerciant d'avance

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Il faut tout d'abord que ta macro soit dans un module, que ton classeur soit fermé:

    Dim Xl 
    Dim Wb 
    Set Xl = CreateObject("Excel.application")
    Xl.Visible = True
    Set Wb = Xl.Workbooks.Open("C:\Users\.....\Documents\essai.xls") ' a adapter le chemin
    Xl.Run "test" ' a adapter
    Set x1 = nothing 


    0
    1. jeje173 Messages postés 4 Statut Membre
       
      Bonjour,

      Merci pour ces informations.
      Ma macro est déjà dans un module donc pas de soucis de côté-là.

      Par contre, pour que mon classeur soit fermé je devrais l'enregistré et là je me plante aussi.

      Est-ce qu'il serait possible d'utiliser une ligne ainsi ?:

      Set Wb = X1.Workbooks.save(C:\............")

      Merci d'avance
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    essaie ceci, mais ton classeur ne sera pas enregistré:

    Dim Xl 
    Dim Wb 
    Dim path
    Set Xl = CreateObject("Excel.application")
    Xl.Visible = True
    Path = Left(WScript.ScriptFullName, InStr(WScript.ScriptFullName, WScript.ScriptName)-1)'chemin du vbs
    Xl.Application.Quit
    Set Wb = Xl.Workbooks.Open(Path & "essai.xls")
    Xl.Run "test"
    Set Xl = nothing 


    0