Ouvrir un fichier dont on ne connait pas l'emplacement (VBS)


L'utilisation de la commande DOS "Dir" avec le paramètre /s permet de rechercher un fichier dans un répertoire complet.
On peut profiter de cette particularité en VBS par exemple pour rechercher le fichier nommé nomfich par les deux lignes de script :
Set sh = WScript.CreateObject("WScript.Shell")
sh.Run "%comspec% /c dir c:\*" & nomfich & "/s > c:\rien.txt",0,true

Le script recherche le fichier nomfich dans tous les répertoires et sousrépertoires du disque C, et envoie le résultat dans un fichier rien.txt.

Il suffit d'extraire les données du fichier texte en utilisant FileSystemObject :
Set fs = CreateObject("Scripting.FileSystemObject")
Set fich = fs.OpenTextFile("C:\rien.txt", 1, false)
do while not fich.atEndOfStream
txt=fich.readLine
...recherche des données
loop
fich.close


Après avoir supprimé le fichier texte devenu inutile par
fs.deletefile "c:\rien.txt"

... il suffit de lancer le fichier nomfich par sh.run...

Dans l'exemple proposé, l'utilisateur se contente de saisir le nom du fichier à lancer, par exemple zaza.xls ou bien za?a.xls.
Le script va rechercher le fichier sur tout le disque et ouvrir le premier zaza.xls qu'il va trouver.


Cliquez ici pour accéder au Script "cherche_fich.vbs"
Cliquez ici pour accéder au texte du script
Cliquez ici pour accéder au Script zippé

Attention, dans certaines configurations, il peut être nécessaire de modifier un peu le script pour prendre en compte les fichiers dont le chemin d'accès comporte des caractères spéciaux (é, è, ù...).