Lancer un fichier .bat depuis une macro excel [Résolu]

cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 10:00 - Dernière réponse : cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 14:14
Bonjours ami(e)s programmeurs et programmeuzes,

bon la question est dans le titre : comment je peux faire pour lancer un fichier BAT depuis une macro ecxel?
En cherchant sur internet j'ai trouvé plusieurs solutions et aucune ne fonctionne =(.

Merci d'avance
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 18 mars 2008 à 10:17
3
Merci
salut,

shell CHEMIN_BAT

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 18 mars 2008 à 11:16
3
Merci
Private Declare Function 
GetCurrentDirectory
Lib
"kernel32" 
Alias 
"GetCurrentDirectoryA" 
(
ByVal 
nBufferLength 
As Long

ByVal 
lpBuffer
As String
)
As Long


Private Sub 
Form_Paint()


    'KPD-Team
2000


    'URL:
http://www.allapi.net/


    'E-Mail:
KPDTeam@allapi.net

    Dim sSave As String
    'create a buffer
    sSave = String(255, 0)
    'retrieve the current
directory
    GetCurrentDirectory 255, sSave
    MsgBox sSave
End Sub

Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Sub Form_Paint()
    'KPD-Team
2000
    'URL:
http://www.allapi.net/
    'E-Mail:
KPDTeam@allapi.net
    SetCurrentDirectory App.Path
End Sub

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 11:30
3
Merci
OMG!!! J'ai trouvé, la réponse est vraiment, mais alors vraiment très bête, et il m'a fallu une heure au moins pour la trouver : j'ai changer le fichier BAT
J'ai rajouter au debut : cd C:\Documents and Settings\moi\bureau

Merci pour ton aide lol, expliue quand meme ton code, si ca te dérange pas, ca pourra toujours me servir ( ou servir a un autre qui passe par ici^^)

Merci cs_faucheuse 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_faucheuse
Meilleure réponse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 18 mars 2008 à 11:40
3
Merci
je disais : voir CURDIR
mais c'est en lecture seule et ta demande est de changer le répertoire par défaut

donc les API....
je te montre GetCurrentDirectory juste pour voir mais ce qui intéresse est SetCurrentDirectory pour modifier...

et j'vois pas comme expliquer une seule ligne de code.... on déclare l'API et on l'utilise...

lancer le BAT (par shell), il se met avec le répertoire par défaut.
donc je te proposais d'essayer (par exemple) un
SetCurrentDirectory "C:"
juste avant de lancer le bat, pour voir ce que çà donne....

mais une autre possibilité est simpement de lancer le RUN et pas le BAT
Shell "cmd.exe CHEMIN_COMPLET.bat", vbNormalFocus

là tu auras le répertoire de l'appli (excel) et la fenêtre ne se fermera pas
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de PCPT
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 10:22
0
Merci
Ok en rajoutant des parenthèses et des guillemets ca marche impec' (moi j'essayer tous les trucs compliqués avec plein d'arguments et tout =(
Commenter la réponse de cs_faucheuse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 10:30
0
Merci
A tien ca a marcher qu'une fois, quand je relance excel ca fonctionne plus, c'est bizarre quand meme ca
Commenter la réponse de cs_faucheuse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 10:41
0
Merci
Alors j'ai un nouveau probleme en fait, maintenant le fichier se lance depuis le dossier ou je l'ai mis, mais quand je lui demande de m'ouviri une commande >DOS il l'ouvre dans Mes Documents.
J'ai donc entrer le chemin complet dans le code : Call Shell("C:\moi\bureau\machin.bat")
Et maintenant il maffiche les options de la commande FTP et s'eteint aussito.

Mon fichier.bat contient la ligne : ftp -s:autrefichier.ftp

Quelqu'un saurait comment faire fonctionner cette macro correctment??
Commenter la réponse de cs_faucheuse
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 18 mars 2008 à 10:49
0
Merci
... la macro fonctionne, elle lance le bat.

tu veux en faire quoi? normal que la fenêtre se ferme...
quand au dossier (mes docs), c'est celui par défaut.
voir CURDIR ou les API..

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Commenter la réponse de PCPT
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 10:57
0
Merci
En fait ce .bat (comme tu l'aura sans doute compris) lance un fichier ftp contenant un code simple qui connecte l'ordianteur a un serveur FTP et récupère un fichier. Or la il ne fait rien (a part m'afficher les options de FTP.

Au cas ou, le fichier FTP contient :
open 10.0.0.15
name
pass
get machin.txt
close
Commenter la réponse de cs_faucheuse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 11:08
0
Merci
D'ailleurs comment est ce qu'on fait pour qu'il ne lance pas le fichier BAT dans Mes Documents? ca reglerait peut etre tout.
Commenter la réponse de cs_faucheuse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 11:24
0
Merci
Oula oula, comprend pas tout, tu pourrais expliquer stp?
Je pense comprendre un peu(dis moi si je me trompe), tu créer deux fonctions : GetCurrentDirectory et SetCurrentDirectory, attachés tout les deux à la librairie Kernel32, ensuite je comprend pas ce qu'il se passe.
Commenter la réponse de cs_faucheuse
cs_faucheuse
Messages postés
309
Date d'inscription
jeudi 10 janvier 2008
Dernière intervention
27 octobre 2011
- 18 mars 2008 à 14:14
0
Merci
Aaaaah d'accooooord, j'avais pas compris ca (suis nouveau en VB ^^)

Merci beaucoup pour ces precisions
Commenter la réponse de cs_faucheuse

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.