Fonction shell VBA
Chachou1980
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
Chachou1980 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Chachou1980 Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Vba shell
- Classic shell - Télécharger - Personnalisation
- Classic shell c'est quoi ✓ - Forum Windows 10
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Classic shell est il sain? ✓ - Forum Windows 8 / 8.1
- Incompatibilité de type vba ✓ - Forum Programmation
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 ;)
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 ;)
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
tout dépend où sont tes paramètres : s'ils sont dans un fichier "texte", tu peux l'ouvrir et le modifier en VBA...
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