VBA: Exporter Excel comme image (.jpg, .png, .bmp)

Vous aussi vous trouvez qu'il est assez pénible de faire des captures d'écran de vos tableaux et vos graphiques en Excel? Que cela prend du temps? Alors continuez à lire car je vais vous expliquer comment facilement automatiser cette tâche et exporter Excel comme image.

VBA: Exporter Excel comme image JPG

Le code qui suit a encore un grand avantage: il est possible d'exporter une image qui, normalement, dépasserait la taille de l'écran! Ce qui n'est pas possible avec un simple capture d'écran – à moins de commencer à jouer avec le Zoom de la Feuille ce qui peut avoir un impact négatif sur la lisibilité.

Le code que je vous propose est donc beaucoup plus pratique qu'une capture d'écran classique!

VBA: exporter une partie de fichier Excel vers un fichier image

Il est tout à fait possible d'exporter un fichier Excel (.xls ou .xlsx etc.) ou une partie de celui-ci en tant qu'image (.jpg, .png, .bmp). Ceci peut considérablement économiser le temps (vous ne devez pas passer par un logiciel de capture d'écran) et surtout apporter de la précision: vous ne devez pas "essayer de couper la sélection au mieux". Le code suivant va exporter EXACTEMENT la partie du fichier Excel dont vous avez besoin. Au millimètre près!

Format de l'image – type de fichier

Avec le code qui suit, vous pouvez exporter un tableau Excel vers différentes types d'image. Mais lequel choisir? Voici un petit aperçu des formats es plus utilisés:

  • JPG / JPEG – Joint Photographic Experts Group: il s'agit d'une image compressée qui permet de garantir une qualité d'image suffisante tout en gardant une taille réduite du fichier.
  • PNG – Portable Network Graphics: Ceci est aussi l'image comprimée mais contrairement à JPG, il s'agit d'un format ouvert (Open Source).
  • BMP – Windows bitmap : ceci est une image non comprimée. Vous ne perdez donc rien en qualité, par contre les fichiers BMP sont beaucoup plus volumineux que leur équivalent en JPG ou PNG.

Le code VBA qui suit peut être utilisé pour les 3 types de fichiers. En fait c'est simple: la méthode d'export utilisée est déterminée par le nom du fichier. Il ne faut pas la spécifier en particulier. Dans la suite de ce tutoriel, j'ai décidé d'utiliser les fichiers .JPG car c'est le format le plus répandu. Si vous voulez utiliser un autre, il vous suffit de changer le suffixe dans le nom du fichier (donc à la place de C:\temp\MonImageExcel.jpg, vous utiliserez C:\temp\MonImageExcel.bmp ).

Comment fonctionne le code VBA?

Et voici comment tout cela fonctionne du point de vue de l'utilisateur: Tout d'abord, on doit sélectionner une plage des cellules que l'on veut "exporter". La "plage" sélectionnée est copié à l'intérieur d'un graphique temporaire. Ce graphique est exporté en tant qu'image et ensuite, il est supprimé du fichier Excel. Tout cela se déroule à l'arrière plan et l'utilisateur ne remarquera rien.

Deux variantes de fonction VBA pour exporter vers un fichier .JPG

  • La première variante (Variante A) a un seul paramètre (de type Range): la plage de cellules à exporter. Le choix de l'emplacement et du nom du fichier image se fait via le dialogue Excel "Sauvegarder sous…"
  • La deuxième variante (variante B), plus complexe mais également plus flexible, utilise toutes les informations nécessaires comme paramètres: la plage à exporter (argument de type Range), l'affichage (ou pas) des lignes de grilles (argument de type Boolean) et l'emplacement et le nom du fichier exporté (argument de type String).

Le code VBA de la fonction "ExporterPlageCommeImage" – variante A

 

Le code VBA de la fonction "ExporterPlageCommeImage" – variante B

Et voici la version qui vous permet d'utiliser les informations nécessaires en tant que arguments.

Remarque pratique: Notez que l'on stocke dans la mémoire (variable LignesDeGrilleOriginal) l'état actuel d'affichage de grilles avant l'export. Une fois l'export effectué, on remets l'affichage dans l'état de départ. Ceci est important car le but n'est pas de modifier les réglages de l'utilisateur. La meilleure pratique est de "restituer" l'Excel à son utilisateur sans aucun changement qu'il n'a pas demandé…

 

L'exemple d'utilisation de la fonction d'export vers fichier JPG (variante B)

Dans le code VBA qui suit, nous allons exporter la plage A1:Z100 de la Feuille "test" vers un fichier image MonImageExcel.jpg dans le dossier C:\temp\

 

Conclusion…

Voici donc une simple astuce qui devrait pouvoir vous économiser du temps et de rendre votre travail plus efficace. Surtout si vous devez inclure, de manière régulière (rapports etc.) l'information à partir d'Excel vers un site internet ou encore une présentation PowerPoint. N'hésitez pas à partager vos remarques et/ou suggestions dans les commentaires…

Pour aller plus loin en VBA

Voici quelques articles qui pourraient également vous être utiles pour rendre votre travail avec Excel et VBA plus efficace…

 

Laissez un commentaire

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

45 commentaires sur “VBA: Exporter Excel comme image (.jpg, .png, .bmp)”