Lancer des commandes shell Unix depuis un code VBA excel

nazgul64 Messages postés 3 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 6 mars 2009 - 26 mars 2008 à 13:07
cs_groslou2 Messages postés 3 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 16 mars 2011 - 24 sept. 2008 à 16:34
Bonjour,

Voilà ... j'essaye de percer un des grands mystères du VBA : comment lancer une commande Shell Unix (exemple : ls, rm ...) ... peinard depuis mon code VBA Excel ??

Simple en apparence ... mais je désespère de trouver une réponse

Olivier

7 réponses

cs_groslou2 Messages postés 3 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 16 mars 2011 1
24 sept. 2008 à 16:34
Un peu tard comme réponse, mais étant donné que j'ai eu le même problème et que j'ai pu trouver une solution, je la fais partager:
- il faut télécharger l'exécutable plink à cette adresse http://tartarus.org/~simon/putty-snapshots/x86/plink.exe
- tu le mets par exemple sur ton bureau
- tu crées une macro:
Sub LancerAppli()
    Call Shell("C:\Documents and Settings\ton_nom_sous_windows\Desktop\plink.exe -l ton_login_sous_unix -pw ton_mot_de_passe_sous_unix le_nom_de_ton_serveur_unixta_ligne_de_commande_unix", 0)
End Sub

Après à toi de t'amuser à faire des boucles sur tes commandes unix, ou à faire un fichier de commandes Shell et à le transférer en ftp sous unix pour l'exécuter ensuite.

GL
1
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
26 mars 2008 à 13:10
Parce que tu fais tourner Excel depuis un OS Unix ?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
26 mars 2008 à 14:00
Bah çà va pas être simple çà.

Tu installes un server web sur ton server Unix/Linux. Tu le rends accessible sur ton réseau (ou Internet).
Tu te crées une page server (PHP, JSP, ...) qui réalise la tâche de listage, de suppression. Et tu appelles cette page par un hit HTTP depuis Excel. Tu récupères enfin dans la réponse HTTP le résultat de ta requête (suppression OK, liste des fichiers, ...) et tu parses le tout pour le rendre affichable sous Excel.

Soit tu as mal exprimé ton problème, soit tu vas galérer pour réaliser cette petite demande qui est, soit dit en passant, assez peu commune.
0
nazgul64 Messages postés 3 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 6 mars 2009
26 mars 2008 à 19:03
Merci à vous ... effectivement j'ai mal formulé ma requête.

Je travaille sous Windows (sous Excel en majorité) et je lance des applications sous un serveur Unix auquel j'accède via un émulateur (Hummingbird Exceed).


J'aimerais pouvoir lancer mes applications (runs en mode batch) sur le serveur Unix depuis une macro VBA Excel, récupérer les fichiers résultats et les analyser sous Excel.

Olivier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
26 mars 2008 à 21:20
Il faut regarder du coté de ton émulateur si tu peux faire ce genre de chose depuis la ligne de commande : cela serait alors faisable en VBA
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
27 mars 2008 à 12:47
Yep
Ca ne fonctionnera que si ton emulateur est "pilotable" autrement qu'à la souris.
Dans le pire, mais alors le pire des cas, quelques sendKeys()te permettront de piloter ton émulateur, mais alors dans ce cas, ce sera assez dégoutant, et surtout pas certain de toujours fonctionner (problèmes pour être certain de la fenêtre qui recevra les sendKeys)

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
nazgul64 Messages postés 3 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 6 mars 2009
27 mars 2008 à 13:10
Effectivement ... ce matin j'ai essayé d'écrire quelque chose avec des sendkeys (et telnet) et ça marche ... mais comme le fait remarquer MrManu
 c'est pas très beau et pas très sûr non plus (obligé de jouer sur des instructions Wait pour que les lignes de commandes passent au mieux).

J'aimerais pouvoir trouver une solution plus pratique (mais toujours entièrement piloté depuis VBA) ...

En ce qui concerne l'émulateur j'ai réussi à effectuer des opérations d'upload et download sur le serveur (ainsi que des sorties de liste de fichiers et dossier d'un répertoire avec l'instruction FTPDIR) grâce à quelques rares exemples sur le web d'applications d'instructions OLE (OLE automation) mais j'ai très peu d'info sur l'ensemble des instructions OLE disponibles et leur fonctionnement ... autrement dit je ne sais pas faire d'envoie d'exécution de commandes.

Merci encore de votre aide ...

Olivier
0
Rejoignez-nous