Variable d'environement et .bat

CerberusAbaka Messages postés 30 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 19 mars 2009 - 11 sept. 2006 à 14:18
CerberusAbaka Messages postés 30 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 19 mars 2009 - 11 sept. 2006 à 15:19
Bonjour;


    Voila j'ait une question qui me parait complexe (qui ne
l'ait surment pas mais bon) et qui est très importante pour moi :


Je doit développer une macros Excel qui vas chercher des données et faire des
action dans un autre logiciel en passant par une dll.


Pour que cette dll s'exécute correctement il faut ajouter certaines variables
d'environnement à l'aide d'un fichier .bat (dans le bat on utilise "set
machin=truc")


Les variables sont très nombreuses et je ne peut pas les rentrer à la main sur
tout les postes dans les propriété system.


Si je fait un .bat qui appelle l'autre .bat ("call bat.bat") et qui
ensuite appelle Excel sa marche.


Le problème c'est que je ne veut pas appeler Excel depuis un bat et que je
voudrait pouvoir appeler mon bat (avec les variables) depuis Excel et que ma
dll appelé puisse retrouver les variable (ps: ce n'est pas moi qui ait fait la
dll...).


Voila pour résumer je voudrait pouvoir appeler le .bat depuis Excel (fonction équivalente
à "call" en batch) et que les variables d'environnement du .bat soit
valable pour le processus Excel et pour ceux qu 'il appelle.


J'espère être clair, merci de vos réponses (même si ce n'est pas possible au moins
j'arrêterais de chercher lol) n'hésiter pas a me demander des précisions.

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 sept. 2006 à 14:36
Salut
Non, pas très clair
C'est de la syntaxe DOS ou VBA que tu cherches ?
Pour lancer un BAT ou un EXE depuis VBA de Excel, il te suffit d'utiliser la fonction Shell
Pour transmettre les paramètres, suffit de les mettre les uns derrière les autres. Utiliser des " pour encadrer des paramètres comportant des espaces.
Tu pourras relire les variables environnement avec la syntaxe Environ (bien choisie, non ?)
    Dim a As String
    a = Environ("TEST")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
0
CerberusAbaka Messages postés 30 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 19 mars 2009
11 sept. 2006 à 14:52
Je suis bien d'accord, le bat est apeller mais je n'ait pas les variable d'environement :


Ce que je veut :

En vba comme sous dos :

1-J'apelle le bat

2-le bat initialise des variable (genre : set XML_ENCODING=ISO-8859-1)

3-je peut rapeler les variable de mon code vb (par environ(" XML_ENCODING"))


ce qui se passe :


Si je fait :

Private Sub Form_Load()

Shell "c:\test.bat"


MsgBox VBA.Environ("XML_ENCODING")


End Sub


avec dans test.bat :


set XML_ENCODING=ISO-8859-1


j'ait une msgbox vide...


alors que je veut qu'elle me revoit ISO-8859-1


voila
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 sept. 2006 à 15:10
Salut,

Pourquoi le VBA  dans MsgBox VBA.Environ("XML_ENCODING")

@+,   Ju£i?n
0
CerberusAbaka Messages postés 30 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 19 mars 2009
11 sept. 2006 à 15:19
Ba les deux marches pr les variable d'environemment
0
Rejoignez-nous