Variable d'environement et .bat

Signaler
Messages postés
30
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
19 mars 2009
-
Messages postés
30
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
19 mars 2009
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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
Messages postés
30
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
19 mars 2009

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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

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

@+,   Ju£i?n
Messages postés
30
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
19 mars 2009

Ba les deux marches pr les variable d'environemment