Fonction shell VBA
Chachou1980
Messages postés
32
Date d'inscription
Statut
Membre
-
Chachou1980 Messages postés 32 Date d'inscription Statut Membre -
Chachou1980 Messages postés 32 Date d'inscription Statut Membre -
Bonjour,
je souhaite realiser un programme VBA qui appelle un fichier (LTSpice) exterieur afin de le faire tourner.
Pour ceci, j utilise la fonction Shell comme suit :
RetVal = Shell("""C:\Programme\LTC\SwCADIII\scad3.exe -b test.cir""", 1)
mais j obtiens un message d erreur me disant a chaue fois que le fichier n existe pas.
Pourriez-vous m en dire un peu plus sur l utilisation de la fonction shell en general et eventuellement me proposer une solution pour appeler un programme exterieur (ici LTSpice), un fichier de ce programme (ici test.cir), et effectuer des commandes sur ce fichier, le tout via VBA ?
Je vous remercie d avance,
Charlotte
je souhaite realiser un programme VBA qui appelle un fichier (LTSpice) exterieur afin de le faire tourner.
Pour ceci, j utilise la fonction Shell comme suit :
RetVal = Shell("""C:\Programme\LTC\SwCADIII\scad3.exe -b test.cir""", 1)
mais j obtiens un message d erreur me disant a chaue fois que le fichier n existe pas.
Pourriez-vous m en dire un peu plus sur l utilisation de la fonction shell en general et eventuellement me proposer une solution pour appeler un programme exterieur (ici LTSpice), un fichier de ce programme (ici test.cir), et effectuer des commandes sur ce fichier, le tout via VBA ?
Je vous remercie d avance,
Charlotte
Configuration: Windows XP Internet Explorer 7.0
8 réponses
-
Mon intervention va paraitre stupide, mais n'aurais tu pas simplement des guillemets en trop?
RetVal = Shell("""C:\Programme\LTC\SwCADIII\scad3.exe -b test.cir""", 1)
qui deviendrait
RetVal = Shell("C:\Programme\LTC\SwCADIII\scad3.exe -b test.cir", 1)
Voilà
Par contre attention,
l'appel d'une exécution extérieure par RetVal se fait en tache de fond et donc ton code continuera de s'exécuter...
Pour changer cela il faut que tu attende une réponse du RetVal si tu veux attendre la fin de l'exe si c'est en parallèle tu n'aura pas se pb
tiens moi au courant si tu as besoin de savoir comment faire pour attendre la rep et si ça marche ou non ;)-
Merci pour ta reponse Redonky !
Oui, j avais aussi essaye avec les guillemets simples ("...") mais ca ne fonctionnait pas non plus. POur ce qui est de RetVal, je l ai recopie d un forum et je ne savais pas que ca avait une application particuliere : pourrais-tu m en dire un peu plus ?
Sinon, j ai reussi a lancer mon programme (LTSpice) comme ceci :
Public Sub ltspice_work()
Dim Software As String
Dim File As String
Dim ToLaunch
Dim RetVal
Software = """C:\Programme\LTC\SwCADIII\scad3.exe"""
File = """C:\Dokumente und Einstellungen\gaud\Desktop\test.cir"""
ToLaunch = Software & " " & File
RetVal = Shell(ToLaunch, 1)
End Sub
mais mon probleme est maintenant de modifier, a partir de VBA, des parametres dans le fichier LTSpice (ici test.cir) que j ouvre.
Saurais-tu comment modifier un programme exterieur a partir de VBA ?
Merci beaucoup,
Charlotte
-