Fonction shell VBA

Fermé
Chachou1980 Messages postés 30 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 20 août 2009 - 4 août 2009 à 14:22
Chachou1980 Messages postés 30 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 20 août 2009 - 11 août 2009 à 12:29
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

8 réponses

redonky Messages postés 102 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 31 octobre 2010 23
4 août 2009 à 14:47
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 ;)
2
Chachou1980 Messages postés 30 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 20 août 2009 3
5 août 2009 à 11:15
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
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289 > Chachou1980 Messages postés 30 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 20 août 2009
5 août 2009 à 11:23
Salut,

tout dépend où sont tes paramètres : s'ils sont dans un fichier "texte", tu peux l'ouvrir et le modifier en VBA...
0
Chachou1980 Messages postés 30 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 20 août 2009 3 > blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024
5 août 2009 à 11:32
Salut Blux,

non, les parametres sont dans ce qui s appelle une netlist en LTSpice (c est un fichier .cir je crois).

Mais si tu sais deja modifier un fichier .txt sous VBA, je suis tout de meme preneuse !

Merci beaucoup,

Charlotte
0