VBA: ouvrir un fichier (de tout type)

VBA: code pour ouvrir un fichier de tout type

Le langage VBA permet d'ouvrir un fichier de tout type dans son application associée. Peu importe à partir d'où vous utilisez le VBA (Excel, Word, un fichier batch,…) et peu importe s'il s'agit d'un fichier texte, d'un document PDF ou d'une image en JPG. À chaque fois, le code VBA qui suit ouvrira le fichier demandé dans sa propre application (son application par défaut) – donc par exemple, il ouvrira un "fichier Word" en Microsoft Word. Pour certains types de fichiers, plusieurs applications peuvent les ouvrir. Par exemple un fichier TXT peut être ouvert dans Bloc-notes, dans WordPad ou tout autre éditeur de texte installé sur le PC. L'utilisateur a le choix de choisir quelle application sera utilisée par défaut.

Ceci peut être assez pratique dans des applications VBA plus complexes mais également si vous souhaitez créer une liste de fichiers à ouvrir quand vous allumez votre PC.

Un autre exemple d'utilisation peut-être l'ouverture d'un fichier après son téléchargement à partir d'Internet.

Ouvrir un fichier en VBA: comment ça marche

En pratique, on doit créer un Object qui nous permettra de lancer une application. Ensuite, on ouvre le fichier voulu à l'intérieur de cet objet. Tout cela grâce à la fonction VBA Shell. Cette fonction se comporte comme .

En pratique, on ne doit pas choisir l'application nous mêmes. C'est Windows qui s'en chargera en ouvrant le fichier dans l'application qui est associée au type de fichier que l'on veut ouvrir. C'est comme double-cliquer sur un fichier dans l'Explorateur Windows. Là aussi, Windows lance l'application approprié "lui-même".

Fonction VBA pour Ouvrir un fichier avec son application par défaut

Et voici donc le code VBA nécessaire à l'ouverture d'un fichier indépendamment de son type. Dans cet exemple, on ouvre le fichier "MonFichier.txt" qui se trouve dans le dossier "C:\MonDossier". Le fichier "MonFichier.txt" sera, en tant que fichier texte, ouvert dans le Notepad (à moins que vous n'ayez associé le suffixe ".txt" à une autre application, par exemple Notpad++).

 

 

Et voici une fonction VBA un peu plus élaborée. Elle utilise le nom et l'emplacement du fichier à ouvrir comme argument et est donc tout à fait générique. De plus, cette fonction teste si le fichier existe avant de l'ouvrir.

 

Comme vous pouvez le voir, cette fonction, en dehors de l'ouverture du fichier choisi, retourne une valeur de type Boolean (Vrai ou Faux) pour indiques si oui ou non le fichier a bien pu être ouvert.

Exemples d'ouverture de fichiers de différents types en VBA

Voici quelques exemples pratiques.

Pour pouvoir les utiliser, vous devez avoir copié le code VBA de la fonction OuvrirFichier (de la section précédente) dans un Module.

Ouvrir un fichier Word en VBA (.docx)

 

Ouverture d'un fichier PDF (.pdf)

 

Ouvrir un fichier PowerPoint (.pptx)

Comme vous voyez, le principe est le même. Il y a seulement le nom du fichier qui change.

Fonction VBA – façon concise

Si vous aimez le code VBA minimaliste, sachez qu'il est possible d'obtenir l'ouverture d'un fichier en une seule ligne de code VBA. Mais comme cela implique l'absence de gestion d'erreurs etc., je ne le conseille qu'à ceux "qui savent ce qu'ils font" 🙂

 

Comment ouvrir un fichier avec une application au choix en VBA

Les codes que vous avez vu plus haut ouvrent chaque type de fichier avec son application "par défaut". Mais il est également possible de choisir l'application avec laquelle le fichier doit être ouvert. Pour cela, on peut utiliser directement la fonction Shell (sans passer par un Object).

L'astuce est d'ajouter l'application que vous voulez utiliser dans l'argument principal qui contient le chemin du fichier.

Pour les principales applications de Microsoft (tel que Excel, Word, Notepad etc.), il suffit d'indiquer le fichier .EXE de l'application. Pour les autres applications, il vous faudra indiquer le chemin complet du fichier exécutable.

Voici des exemples pour que ce soit plus clair:

  • ouvrir un fichier .CSV en Excel:
  • ouvrir le même fichier .CSV mais en "Notepad++":

Donc comme vous pouvez le constater, il faut mentionner d'abord le fichier exécutable, suivi d'un espace, suivi du fichier à ouvrir.

C'est aussi simple que cela!

Pour aller plus loin en VBA

Si la manipulation de fichiers en VBA vous intéresse, vous trouverez sur Excel-Malin.com un tutoriel dédié à ce sujet: Manipulation basique des fichiers en VBA

Sinon, d'autres Codes sources VBA sont à votre disposition, notamment:

Et vous trouverez peut-être utile également:

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

15 commentaires sur “VBA: ouvrir un fichier (de tout type)”