[VBA] Commande shell
Utilisateur anonyme
-
blux Messages postés 27997 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27997 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous
J'essai de réaliser cette instruction en VBA:
Shell ("CMD.EXE FOR %%I IN (*.txt) DO MOVE D:\rep1\%%I D:\rep2")
seulement, cela ne fonctionne pas, cela n'ouvre qu'une fenêtre dos... pourquoi ?
Merci d'avance
J'essai de réaliser cette instruction en VBA:
Shell ("CMD.EXE FOR %%I IN (*.txt) DO MOVE D:\rep1\%%I D:\rep2")
seulement, cela ne fonctionne pas, cela n'ouvre qu'une fenêtre dos... pourquoi ?
Merci d'avance
A voir également:
- Vba shell
- Classic shell - Télécharger - Personnalisation
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Secure shell - Télécharger - Divers Web & Internet
7 réponses
Salut,
Tape cmd /? dans une fenêtre et tu verras tous les paramètres autorisés...
Pas de commandes sur la ligne de commande ! ;-)
As-tu essayé cmd.exe /C "for......")
Tape cmd /? dans une fenêtre et tu verras tous les paramètres autorisés...
Pas de commandes sur la ligne de commande ! ;-)
As-tu essayé cmd.exe /C "for......")
Dans une fenêtre dos, la commande
cela ne fonctionne pas...
FOR %%I IN (*.txt) DO MOVE D:\rep1\%%I D:\rep2\fonctionne parfaitement mais si je la rajoute dans un programme Visual Basic Application pour Excel, comme ceci:
Shell("CMD.EXE /C FOR %%I IN (*.txt) DO MOVE D:\rep1\%%I D:\rep2\")
cela ne fonctionne pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est normal, il faut mettre les guillemets avec leur code ascii pour que vb ne grogne pas :
Dim a As String a = "CMD.EXE /K " & Chr(34) & " dir " & Chr(34) Shell (a)Ca marche chez moi...
La commande FOR marche, mais ce sont les arguments que tu as donné qui gênent...
Dans l'aide de CMD, il est dit que certains car. spéciaux doivent être mis entre guillemets : <espace> &()[]{}^=;!'+,`~
Il faut donc préparer une chaîne avec les guillemets aux bons endroits pour contenter VBA et DOS en même temps.
Avec des chr(34) et de nombreux essais, tu devrais t'en sortir...:-)
Dans l'aide de CMD, il est dit que certains car. spéciaux doivent être mis entre guillemets : <espace> &()[]{}^=;!'+,`~
Il faut donc préparer une chaîne avec les guillemets aux bons endroits pour contenter VBA et DOS en même temps.
Avec des chr(34) et de nombreux essais, tu devrais t'en sortir...:-)
bonjour à tous,
j'ai le meme le probleme avec ce code:
Shell cmd.exe /c D:\Fiche BDD\oraclehash.exe
j'ai erreur 53 fichier introuvable
et dans la fenetre dos j'ai ce message :
"'D:\Fiche' n'est pas reconnu en tant que commande interne ou externe, un programmeexecutable ou un fichier de commandes"
le Shell ne supporte pas un nom de repertoire composé de deux noms separer par de l'espace
est ce qu'il y a une solution pour resoudre ce probleme
en fait je lance ce code :Shell cmd.exe /c D:\Fiche BDD\oraclehash.exe
à partir d'une macro dans un fichier excel
merci d'avance
j'ai le meme le probleme avec ce code:
Shell cmd.exe /c D:\Fiche BDD\oraclehash.exe
j'ai erreur 53 fichier introuvable
et dans la fenetre dos j'ai ce message :
"'D:\Fiche' n'est pas reconnu en tant que commande interne ou externe, un programmeexecutable ou un fichier de commandes"
le Shell ne supporte pas un nom de repertoire composé de deux noms separer par de l'espace
est ce qu'il y a une solution pour resoudre ce probleme
en fait je lance ce code :Shell cmd.exe /c D:\Fiche BDD\oraclehash.exe
à partir d'une macro dans un fichier excel
merci d'avance