OVH Cloud OVH Cloud

Shell

6 réponses
Avatar
Jacky
Bonjour,
Je pose cette question sur ce forum, bien que ce soit un problème VBA, mais
je pense que cette instruction est la même sur VB.

J'ai un problème avec l'instruction 'Schell'
Je n'arrive pas à transmettre une variable ou un argument au programme lancé
par Shell
Mon code:

Shell("C:\xxxx\data\mon_programme.EXE variable",1)

Alors que, si je le lance directement dans la fenêtre 'exécuter' de Windows
sous la forme 'mon_programme.EXE variable' cela fonctionne parfaitement.
Quelqu'un aurait une solution ?

Un petit nouveau sur ce forum
Merci
JJ

6 réponses

Avatar
ng
Salut,

Je n'ai pas tout compris mais essaye ceci :

Shell "chemin du prog.exe """ & sVariable & """",vbNormalFocus

Nicolas.

"Jacky" a écrit dans le message de news:

Bonjour,
Je pose cette question sur ce forum, bien que ce soit un problème VBA,


mais
je pense que cette instruction est la même sur VB.

J'ai un problème avec l'instruction 'Schell'
Je n'arrive pas à transmettre une variable ou un argument au programme


lancé
par Shell
Mon code:

Shell("C:xxxxdatamon_programme.EXE variable",1)

Alors que, si je le lance directement dans la fenêtre 'exécuter' de


Windows
sous la forme 'mon_programme.EXE variable' cela fonctionne parfaitement.
Quelqu'un aurait une solution ?

Un petit nouveau sur ce forum
Merci
JJ




Avatar
François Picalausa
Bonjour/soir,

Jette un oeil à la fiche suivante de la FAQ:
http://faq.vb.free.fr/index.php?question=7

ShellExecute permet, par l'intermédiaire de lpParameters de passer des
paramètres explicitement.

Sinon, par Shell, vérifie que tu n'as pas d'espaces dans ton chemin.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"Jacky" a écrit dans le message de
news:
Bonjour,
Je pose cette question sur ce forum, bien que ce soit un problème VBA,


mais
je pense que cette instruction est la même sur VB.

J'ai un problème avec l'instruction 'Schell'
Je n'arrive pas à transmettre une variable ou un argument au programme


lancé
par Shell
Mon code:

Shell("C:xxxxdatamon_programme.EXE variable",1)

Alors que, si je le lance directement dans la fenêtre 'exécuter' de


Windows
sous la forme 'mon_programme.EXE variable' cela fonctionne parfaitement.
Quelqu'un aurait une solution ?

Un petit nouveau sur ce forum
Merci
JJ




Avatar
Jacky
Merci NG;
Ton code ne fonctionne pas non plus.
Ma syntaxe exact en vba est:
RetVal =Shell("C:chemin du répertoiremon_programme.EXE variable",1)
Le programme en question se lance, mais ne tient pas compte de la variable.
Autre solution peut-être?
JJ

"ng" a écrit dans le message news:

Salut,

Je n'ai pas tout compris mais essaye ceci :

Shell "chemin du prog.exe """ & sVariable & """",vbNormalFocus

Nicolas.

"Jacky" a écrit dans le message de news:

> Bonjour,
> Je pose cette question sur ce forum, bien que ce soit un problème VBA,
mais
> je pense que cette instruction est la même sur VB.
>
> J'ai un problème avec l'instruction 'Schell'
> Je n'arrive pas à transmettre une variable ou un argument au programme
lancé
> par Shell
> Mon code:
>
> Shell("C:xxxxdatamon_programme.EXE variable",1)
>
> Alors que, si je le lance directement dans la fenêtre 'exécuter' de
Windows
> sous la forme 'mon_programme.EXE variable' cela fonctionne parfaitement.
> Quelqu'un aurait une solution ?
>
> Un petit nouveau sur ce forum
> Merci
> JJ
>
>




Avatar
François Picalausa
Bonjour/soir,

Malheureusement ShellExecute n'est pas disponible dans vba


Bien sûr que si!
Il suffit de déclarer l'API correspondante (Declare function ShellExecute
Lib ..., comme indiqué sur la faq) et cette fonction est disponible (testé
avec word XP)!

Autre solution peut-être?


Essaye Msgbox du premier argument de shell pour vérifier si ta ligne de
commande est correcte, peut-être?

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"Jacky" a écrit dans le message de
news:
Merci François,
Malheureusement ShellExecute n'est pas disponible dans vba
Ma syntaxe exact en vba est:
RetVal =Shell("C:xxxxdatamon_programme.EXE variable",1)
Le programme en question se lance, mais ne tient pas compte de la


variable.
Autre solution peut-être?
JJ


"François Picalausa" a écrit dans le message news:

> Bonjour/soir,
>
> Jette un oeil à la fiche suivante de la FAQ:
> http://faq.vb.free.fr/index.php?question=7
>
> ShellExecute permet, par l'intermédiaire de lpParameters de passer des
> paramètres explicitement.
>
> Sinon, par Shell, vérifie que tu n'as pas d'espaces dans ton chemin.
>
> --
> François Picalausa (MVP VB)
> FAQ VB : http://faq.vb.free.fr
> MSDN : http://msdn.microsoft.com
>
> "Jacky" a écrit dans le message de
> news:
> > Bonjour,
> > Je pose cette question sur ce forum, bien que ce soit un problème VBA,
> mais
> > je pense que cette instruction est la même sur VB.
> >
> > J'ai un problème avec l'instruction 'Schell'
> > Je n'arrive pas à transmettre une variable ou un argument au programme
> lancé
> > par Shell
> > Mon code:
> >
> > Shell("C:xxxxdatamon_programme.EXE variable",1)
> >
> > Alors que, si je le lance directement dans la fenêtre 'exécuter' de
> Windows
> > sous la forme 'mon_programme.EXE variable' cela fonctionne


parfaitement.
> > Quelqu'un aurait une solution ?
> >
> > Un petit nouveau sur ce forum
> > Merci
> > JJ
> >
> >
>
>




Avatar
Jacky
Rebonjour
Merci de vous être penché sur mon problème
La syntaxe exact pour mon code est:

Shell "C:Cheminnom du programme.exe" & " " & "variable", vbNormalFocus
et en plus il fonctionne , en tout cas chez moi. (win 98 excel 97)

Bonne journée
JJ

"François Picalausa" a écrit dans le message news:

Bonjour/soir,

Jette un oeil à la fiche suivante de la FAQ:
http://faq.vb.free.fr/index.php?question=7

ShellExecute permet, par l'intermédiaire de lpParameters de passer des
paramètres explicitement.

Sinon, par Shell, vérifie que tu n'as pas d'espaces dans ton chemin.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"Jacky" a écrit dans le message de
news:
> Bonjour,
> Je pose cette question sur ce forum, bien que ce soit un problème VBA,
mais
> je pense que cette instruction est la même sur VB.
>
> J'ai un problème avec l'instruction 'Schell'
> Je n'arrive pas à transmettre une variable ou un argument au programme
lancé
> par Shell
> Mon code:
>
> Shell("C:xxxxdatamon_programme.EXE variable",1)
>
> Alors que, si je le lance directement dans la fenêtre 'exécuter' de
Windows
> sous la forme 'mon_programme.EXE variable' cela fonctionne parfaitement.
> Quelqu'un aurait une solution ?
>
> Un petit nouveau sur ce forum
> Merci
> JJ
>
>




Avatar
Jacky
Salut Nicolas
Tu as tout à fait raison, dans mon exemple c'était bien variable que
j'envoie, donc:
Shell "C:Cheminnom du programme.exe" & " " & variable, vbNormalFocus
J'ai aussi constaté que le répertoire de destination été très important, car
si le chemin du prg exécutable est donné, celui ou est envoyé la variable
doit être défini (Chdir)
Bonne journée
JJ

"ng" a écrit dans le message news:

cela ne peut pas fonctioner dans la mesure où ta variable est entre ", la
chaine "variable" sera envoyée et non le cotenu de la variable nomée
variable.


"Jacky" a écrit dans le message de news:
#
> Rebonjour
> Merci de vous être penché sur mon problème
> La syntaxe exact pour mon code est:
>
> Shell "C:Cheminnom du programme.exe" & " " & "variable", vbNormalFocus
> et en plus il fonctionne , en tout cas chez moi. (win 98 excel 97)
>
> Bonne journée
> JJ
>
> "François Picalausa" a écrit dans le message news:
>
> > Bonjour/soir,
> >
> > Jette un oeil à la fiche suivante de la FAQ:
> > http://faq.vb.free.fr/index.php?question=7
> >
> > ShellExecute permet, par l'intermédiaire de lpParameters de passer des
> > paramètres explicitement.
> >
> > Sinon, par Shell, vérifie que tu n'as pas d'espaces dans ton chemin.
> >
> > --
> > François Picalausa (MVP VB)
> > FAQ VB : http://faq.vb.free.fr
> > MSDN : http://msdn.microsoft.com
> >
> > "Jacky" a écrit dans le message de
> > news:
> > > Bonjour,
> > > Je pose cette question sur ce forum, bien que ce soit un problème


VBA,
> > mais
> > > je pense que cette instruction est la même sur VB.
> > >
> > > J'ai un problème avec l'instruction 'Schell'
> > > Je n'arrive pas à transmettre une variable ou un argument au


programme
> > lancé
> > > par Shell
> > > Mon code:
> > >
> > > Shell("C:xxxxdatamon_programme.EXE variable",1)
> > >
> > > Alors que, si je le lance directement dans la fenêtre 'exécuter' de
> > Windows
> > > sous la forme 'mon_programme.EXE variable' cela fonctionne
parfaitement.
> > > Quelqu'un aurait une solution ?
> > >
> > > Un petit nouveau sur ce forum
> > > Merci
> > > JJ
> > >
> > >
> >
> >
>
>