VBS active une macro Excel

Fermé
jeje173 Messages postés 3 Date d'inscription jeudi 1 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015 - 1 oct. 2015 à 09:31
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 1 oct. 2015 à 13:42
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
A voir également:

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
1 oct. 2015 à 11:54
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
jeje173 Messages postés 3 Date d'inscription jeudi 1 octobre 2015 Statut Membre Dernière intervention 16 octobre 2015
1 oct. 2015 à 12:12
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
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
1 oct. 2015 à 13:42
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