Pb ouvrir/editer/fermer un doc dont le nom contient des espaces

Signaler
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
Messages postés
2
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 février 2004
-
Bonsoir,

J'aimerais parcourir un répertoire et éditer automatiquement les fichiers .doc et .xls
Je bloque avec les répertoires et les noms de fichiers comportant des espaces.

En VBS, je veux ouvrir/éditer/fermer des fichiers.
Ma proc marche si je n'ai pas d'espace dans le nom du répertoire et dans le nom du fichier.

Dim Shell
Set Shell = WScript.CreateObject("WScript.Shell")

Shell.Run "c:\Partage-Jean-Marc\test jean marc.doc" 'ne s'ouvre pas car il y a des espaces
Shell.Run "c:\Partage Jean Marc\test jean marc.doc" 'ne s'ouvre pas car il y a des espaces
Shell.Run "c:\Partage-Jean-Marc\test-jean-marc.doc" 's'ouvre car il n'y a pas d' espaces

Shell.SendKeys "^p" 'Raccourci clavier de l'impression
Shell.SendKeys "{ENTER}" 'Réponse OK pour fenêtre imprimer
WScript.Sleep(5000)
Shell.SendKeys "%(ff)" 'fermeture du document
WScript.Sleep(1500)
Shell.SendKeys "%n" 'non enregistrement du document
Shell.SendKeys "%{F4}",true 'fermeture de Word

En cherchant dans le Forum, je pense qu'il faut peut-être utiliser les chemins DOS du répertoire (+sous-répertoires) et le DOS du fichier....

J'ai fait des essais avec GetAbsolutePathName pour le chemin et GetFileName pour le fichier, mais je me plante à chaque fois.

Quelqu'un peut-il m'aider ????????????

La proc ci-dessus est incomplète car j'ai rajouté For Each pour testé .doc et .xls. C'est simplement la base pour testé sur 1 document

3 réponses

Messages postés
156
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
4 mars 2003

Pour avoir le nom DOS du fichier tu dois récrire ton code :
- soit avec les API si tu te sens (ton code sera plus rapide et efficace)
-si tu n'as pas envie de te fouler, avec FileSystemObject : (note : tu dois créer autant de f1, f2, f3, etc... que tu as de fichiers)

Dim Shell, fso, f1, f2, f3
Set Shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\Partage-Jean-Marc\test jean marc.doc")
Set f2 = fso.GetFile("c:\Partage Jean Marc\test jean marc.doc")
Set f3 = fso.GetFile("c:\Partage-Jean-Marc\test-jean-marc.doc")

Shell.Run f1.ShortPath
Shell.Run f2.ShortPath
Shell.Run f3.ShortPath

Shell.SendKeys "^p" 'Raccourci clavier de l'impression
Shell.SendKeys "{ENTER}" 'Réponse OK pour fenêtre imprimer
WScript.Sleep(5000)
Shell.SendKeys "%(ff)" 'fermeture du document
WScript.Sleep(1500)
Shell.SendKeys "%n" 'non enregistrement du document
Shell.SendKeys "%{F4}",true 'fermeture de Word
0
Messages postés
2
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 février 2004

Wesh, Le neuf22!!

merci pour les infos sur l'execution des fichiers sans espace...c vraiment cool ces sites de codes sources, ca evite des putains et des putains d'heure de recherche...
grâce a ton code source, j'ai pu savoir comment faire pour éxecuter un fichier, quelque soit l'extension et son nom depuis une boite de dialogue....
c vraiment génial et ca evite plein d'heures de tafs...merci encore!!
0
Messages postés
2
Date d'inscription
mardi 24 février 2004
Statut
Membre
Dernière intervention
24 février 2004

Wesh, Le neuf22!!

merci pour les infos sur l'execution des fichiers sans espace...c vraiment cool ces sites de codes sources, ca evite des putains et des putains d'heure de recherche...
grâce a ton code source, j'ai pu savoir comment faire pour éxecuter un fichier, quelque soit l'extension et son nom depuis une boite de dialogue....
c vraiment génial et ca evite plein d'heures de tafs...merci encore!!
0