VBA: commands multiples à partir d'un cmd.exe

J'essaie d'exécuter un script VBA qui exécutera un programme shell particulier avec des arguments extraits de Excel Spreadsheet.

J'aimerais exoter la command n fois pour n lignes dans spredsheet, mais je l'ai dans une seule window cmd.exe. Est-ce que cela est réalisable?

Je fais de telles étapes:

1.Création de l'object shell:

Set wsh = VBA.CreateObject("WScript.Shell") 

2.Introduire toutes les lignes dans la feuille de calcul et appeler chacune:

 wsh.Run("Command with row specific args", 1, true) 

En conséquence, j'ai n console windows ouvert pour n lignes traitées. Y a-t-il un moyen de l'éviter?

Aide appréciée.

Vous ne donnez pas beaucoup de détails, mais une solution pourrait être de créer un file batch (.bat) (pas différent de l'écriture sur un autre file text) avec tous les parameters dont vous avez besoin, l'save quelque part, puis l'exécuter en un seul appeler à cmd.exe. Et vous pouvez simplement supprimer ce file.


Commencez par ouvrir le file pour la sortie:

 Dim fn As Long fn = FreeFile Open "filename.bat" For Output As #fn 

Ensuite, iterate votre gamme, et au lieu de lancer un cmd.exe pour chaque, écrivez dans votre file ouvert:

 Print #fn "command with row specific args" 

Puis fermez votre file et exécutez-le:

 Close #fn Set wsh = VBA.CreateObject("WScript.Shell") wsh.Run("filename.bat", 1, true) 

Ensuite, vous pouvez jeter le file:

 Kill "filename.bat"