[VBA Cde Shell] problème avec les espaces

problème avec les espaces [VBA Cde Shell] - VB/VBA/VBS - Programmation

Marsh Posté le 10-09-2004 à 16:29:23    


je voulais lancer simplement
 
myShell = shell("chemin\Excel.exe c:\Mes Documents\fichierExcel.xls",1)
 
mais l'espace dans "Mes documents" pose un problème à Excel pour le lancement du fichier.
 
Comment gérer ces espaces dans le pathname pour le nom du fichier ??
 
Il faut noter que pour le chemin de Excel.exe, l'espace de "Program Files" n'a pas posé de problème.
 
Merci pour une réponse ou une piste.

Reply

Marsh Posté le 10-09-2004 à 16:29:23   

Reply

Marsh Posté le 10-09-2004 à 16:36:35    

essaie  
 
C:\Documents and Settings\mon username\Mes Documents

Reply

Marsh Posté le 10-09-2004 à 16:43:22    

La solution me semble pas par là.
En fait, la commande est découpée
 
Le message d'erreur est, alors que Excel s'ouvre :
"Excel ne trouve pas le ficher c:\Mes.xls"
"Excel ne trouve pas le ficher Documents\fichierExcel.xls"
 
L'espace étant le séparateur entre l'application et son fichier, le système pense que j'essaie d'ouvrir plusieurs fichiers.
 
Merci pour cette réactivité.

Reply

Marsh Posté le 10-09-2004 à 20:03:54    

myShell = shell("""chemin\Excel.exe"" ""c:\Mes Documents\fichierExcel.xls""",1)  
 
et zou !

Reply

Marsh Posté le 10-09-2004 à 20:05:58    

ceci dit, avec VBA, tu peux carrément faire un objet de type EXCEL, le mettre à invisible et faire tes traîtements dedans.
 
A ce moment, t'as même plus besoin de faire un shell, et ça t'évite de te faire chier avec une macro en autoexec qui génère un warning sur Office 2000 SP2.

Reply

Marsh Posté le 10-09-2004 à 20:06:15    

je regarde si je retrouve la syntaxe :)

Reply

Marsh Posté le 10-09-2004 à 20:35:56    

Bon, désolé, j'ai été emmerdé au téléphone et tout le tintouin (pfff, on peut pas être tranquille dans c'te barraque :o)
 
Voilà ce que je t'ai pondu :


dim excel
Set excel = CreateObject("Excel.Application" )
excel.visible = false
excel.Workbooks.Open("c:\documents and settings\sylvain devidal\mes documents\test.xls" )
excel.Workbooks("test.xls" ).worksheets(1).cells(1,1).value = "Arjuna est une véritable déesse, normale, elle a été enfantée par MagicBuzz le grand Shaman"
excel.Workbooks("test.xls" ).SaveAs("c:\documents and settings\sylvain devidal\mes documents\archives\" & replace(replace(now, "/", "-" ), ":", "" ) & ".xls" )
excel.Workbooks.Close()
excel.Quit()
Set excel = Nothing
 


 
Change mon nom par le tiens :D
Puis crée un fichier "test.xls" dans "Mes Documents".
Crée un répertoire "Archives" dans "Mes Documments".
 
Lance 3 ou 4 fois le script, et va dans "Archives".
Admirre le résultat, et vénère-moi :ange:
 
Pour la suite, t'as plus qu'à recopier ta macro dans le VBS, et comme ça tu pourras partir d'un VB dénué de toute macro. Le VBA ne te posera pas de problème d'alertes de séciruté pour tourner, et tu auras accès à tout comme depuis une macro (juste que la syntaxe est légèrement plus chiante).
 
PS: une partie des sous-objets est inutile dans mon exemple (les "workbooks("test.xls" )" par exemple) mais oblige-toi à les conserver : le jour où tu auras besoin de bosser avec deux fichiers ouverts en même temps dans ton objet Excel, ça te sera très utile :)
 
PS: qui a dit que VBA c'était de la merde ? :)


Message édité par Arjuna le 10-09-2004 à 20:39:02
Reply

Marsh Posté le 20-09-2004 à 18:47:40    

C'est super ton truc !!!!
J'avais pas idée de créer un object "fichier".
Note que je suis débutant et en autoformation.
 
Je peux peut-être te vénérer mais sûr te remercier.
 
Cordialement
 
jr10
 

Reply

Marsh Posté le 21-09-2004 à 00:49:35    

moi aussi j'ai découvert tout ça en autoformation :
 
style au boulot on me demande :  
- faire une macro excel tu sais faire ?
- euh... nan, c'est du VBA, ça doit s'apprendre...
- bon, ok, fait-moi pour cet après-midi une macro qui va télécharger des reports sur notre intranet, puis qui s'envoie pas mails dans une liste de mails retrouvés dans mes contacts outlook.
- euh...
 
:D

Reply

Marsh Posté le 29-05-2008 à 16:26:17    

Arjuna a écrit :

myShell = shell("""chemin\Excel.exe"" ""c:\Mes Documents\fichierExcel.xls""",1)  
 
et zou !


 
Bonjour,
 
Je sais que ça date un peu mais bon... je tente le coup.
En suivant les recommandations de Arjuna, est-il possible de passer le fichier Excel à ouvrir en paramètre ?
 
Merci grandement !!!

Reply

Marsh Posté le 29-05-2008 à 16:26:17   

Reply

Marsh Posté le 14-06-2013 à 12:19:47    

Pour moi, ces problemes d'espace ne sont pas dans le nom complet (avec chemin de l'executable), mais dans celui du fichier utilisé
 
J'ai réglé ce problème d'espace dans les chemins en mettant des guillemets
 
exemple :
 
Shell("c:\mon dossier\MonAppli.exe ""c:\dossier avec espace\Fichier.ext""" )
 
pour créer un espace dans une chaine de caractères, en mettre 2 ""

Reply

Marsh Posté le 14-06-2013 à 12:21:22    

rectif
pour créer un guillemet dans une chaine de caractères, en mettre 2 ""

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed