comment faire pour lancer un VBS depuis un BATCH

Chahyd2010

XLDnaute Nouveau
Bonjour A toute et a tous,

Comment puis-je lancer un .vbs depuis un .bat la commande suivante ne fonctionne pas.

@echo off
start "" "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE"\test 01.xlsm" /cmd/macro1

Une fois la macro1 exécuté je souhaiterais ouvrir un autre programme (AS400 par exemple) et revenir dans le classeur excel ouvert pour appliquer une autre macro.

D'avance merci pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Re : comment faire pour lancer un VBS depuis un BATCH

Bonjour à tous


Pourquoi ne pas lancer directement le *.vbs ?
(Un script VBS sait très bien lancer une macro d'un fichier Excel donné, voir les exemples dans les archives du forum ou sur le net)
 

Chahyd2010

XLDnaute Nouveau
Re : comment faire pour lancer un VBS depuis un BATCH

Salut Staple1600,

Je veut utiliser cette méthode car j'ai une tache quotidienne qui pourrais m'être facilité.

Je m'explique, j'ouvre un logicielle d'extraction de donné sur Iseris je récupère cette extraction sur un fichier excel puis je lance une seconde requête toujours sur le premier logiciel et je recommence la manipulation 4 fois. Les macro me servent a de la mise en forme et des sous totaux.

1-ouverture du logiciel A pour extraction (fermeture après extraction)
2-ouverture de vbScripte (qui ouvre excel + macro1) puis mettre en pause
3-ouverture du logiciel B pour extraction (fermeture après extraction)
4-retour sur vbScripte ( pour lancer la macro2)

les 4 étapes a 4 reprises car les fichiers d'extraction sont différents
 

Staple1600

XLDnaute Barbatruc
Re : comment faire pour lancer un VBS depuis un BATCH

Re


J'ai bien compris mais pourquoi passer par un *.bat alors que tu peux lancer directement ton *.vbs
(VBS sait lancer Excel directement sans passer par MSDOS)
Un exemple basique de script vbs ci-dessous
(Ce script lance un fichier Excel existant contenant une macro nommé toto et exécute celle-ci)
Code:
Dim objExcel
Dim objWorkbook
Set objExcel = CreateObject("Excel.Application" )
Set objWorkbook = objExcel.Workbooks.Open("path_du_fichierEXCELcontenantLaMacro") 
objExcel.Visible = True
objExcel.run "toto" 'toto = nom de la macro à lancer
Et donc pas besoin de batch MSDOS ;)


 

Staple1600

XLDnaute Barbatruc
Re : comment faire pour lancer un VBS depuis un BATCH

Re

On a du mal à se comprendre lol ;)
Un fichier VBS sait aussi lancer "des logiciels" avec comme petit plus un mode silencieux
(pas d'affichage de fenêtre Dos à l’exécution)

Mais puisque tu sembles décidé à ne voir que par l'emploi d'un batch MSDOS, je n'insiste pas.
 

Chahyd2010

XLDnaute Nouveau
Re : comment faire pour lancer un VBS depuis un BATCH

Effectivement on s'es mal compris,

Je ne savais pas qu'on pouvais lancer d'autre .exe depuis un VBS je pensais que s'êtais propre a excel.

Dessolé pour le quiproquo:eek:.

Alors si j'ai bien compris a la place de objExcel je peut entré une autre application quelque soit sont extension? .bat .vbs .docx etc......

Dim objExcel
Dim objWorkbook
Set objExcel = CreateObject("Excel.Application" )
Set objWorkbook = objExcel.Workbooks.Open("path_du_fichierEXCELcontenantLaMacro")
objExcel.Visible = True
objExcel.run "toto" 'toto = nom de la macro à lancer


Peut-tu me donner un exemple avec deux ou trois lancement de programme différent stp.:eek:
 

Staple1600

XLDnaute Barbatruc
Re : comment faire pour lancer un VBS depuis un BATCH

Re

Un exemple
Code:
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)
(tu en trouveras plein d'autres sur le web ;) )
Le script ci-dessus venait de :
Ce lien n'existe plus

Je te laisse découvrir les possibilités offertes par le mixage du VBS et de VBA
(car oui Excel peut aussi exécuter du VBS)

EDITION: En relisant tout ton fil, je suis pris d'un doute
Le VBS n'est pas le VBA, or j'ai l'impression que tu voulais dire dans ton titre:
lancer une macro VBA à partir d'un batch MSDOS (*.bat)
Pour exécuter du VBS, on copie le script dans un fichier texte avec l'extension *.VBS et on l’exécute en double-cliquant dessus
Par exemple le script ci-dessus, copie dans le bloc-notes puis fais enregistrer sous test.vbs (syr ton bureau par exemple) puis double-cliques sur test.vbs
 
Dernière édition:

Statistiques des forums

Discussions
312 504
Messages
2 089 087
Membres
104 025
dernier inscrit
NoobDu83