Fonction shell VBA

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
Configuration: Windows XP Internet Explorer 7.0

8 réponses

  1. redonky Messages postés 103 Statut Membre 23
     
    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
    1. Chachou1980 Messages postés 32 Date d'inscription   Statut Membre 3
       
      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
      1. blux Messages postés 5043 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > Chachou1980 Messages postés 32 Date d'inscription   Statut Membre
         
        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
      2. Chachou1980 Messages postés 32 Date d'inscription   Statut Membre 3 > blux Messages postés 5043 Date d'inscription   Statut Modérateur Dernière intervention  
         
        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