VBA: trouver la hauteur et la largeur d’une image

Quelque soit la raison pour le faire, sachez que grâce à VBA, vous pouvez facilement obtenir l'information sur les dimensions (hauteur et largeur) d'un fichier image.  Vous pouvez ainsi vérifier si la taille de vos photos est compatible avec votre créateur d'albums photo en ligne, vous pouvez tester si la photo/image est verticale (portrait) ou horizontale (paysage), vous pouvez tester s'il s'agit d'une photo d'origine ou d'un rapetissement,…

Pour cela, je vous propose trois fonctions VBA prêtes à l'emploi, comme d'habitude, avec un simple copier/coller dans votre projet.

Une qui vous donne les mensurations en format "hauteur x largeur", une qui renvoie le chiffre correspondant à la hauteur en pixels de l'image et une qui renvoie un chiffre avec la largeur en pixels de l'image. Les deux dernières seront utiles si vous devez faire les tests ou les comparaisons chiffrées (plus grande que…, plus petite que…).

Trouver la largeur et la hauteur d'une image en VBA

Ces trois fonctions utilisent comme argument le nom de fichier image en question (ainsi que le chemin vers ce fichier). Elles sont utilisables telles quelles – il suffit de les copier/coller dans votre projet. Un exemple d'utilisation se trouve à la fin de cet article.

Trouver les dimensions d'une image en pixels en VBA

Cette fonction VBA vous donne comme résultat les deux dimensions en pixels de l'image en tant que chaîne de caractères (sous format: "hauteur x largeur").

Comme vous pouvez le constater, on fait appel à la propriété .ExtendedProperty("Dimensions") du fichier image. Le résultat doit encore être traité car brut, il contient des caractères indésirables. Ce "nettoyage" se fait à la fin du code.

Si une erreur survient, le résultat de la fonction sera une chaîne de caractères vide…

Trouver la hauteur en pixels d'une image

Cette fonction fait également appel à propriété .ExtendedProperty("Dimensions"). Les dimensions ainsi obtenues sont traitées différemment que dans la fonction précédente – on en extrait la valeur numérique de la hauteur de l'image. Le résultat de cette fonction est un nombre de type Single.

 

Trouver la largeur en pixels d'une image

Ce code VBA fonctionne de la même manière que la fonction précédente. Cette fois, la fonction va renvoyer comme résultat la largeur de l'image en pixels…

 

Example d'utilisation des trois fonctions VBA

Pour terminer, voici une petite procédure pour illustrer l'utilisation des fonctions présentées dans cet article.

Astuce: Si vous voulez traiter une quantité importante des photos/images (les trier selon la taille etc.), il vous suffit de combiner ces fonctions avec des boucles et vous obtiendrez un outil  étonnamment puissant capable de vérifier des dizaines de photos par minute…

Conclusion

Il ne s'agit pas de fonctions bien compliquées – il faut surtout savoir qu'une telle fonction existe en VBA. On n'a pas souvent le réflexe d'imaginer qu'Excel peut être utilisé pour gérer des photos.

Pour garantir un meilleur résultat, vous pouvez, avant de tester la taille des images, vérifier si le fichier existe. Vous éviterez ainsi des erreurs au cas où le fichier que vous voulez tester n'existe pas (ceci est surtout utile si vous voulez utiliser cette technique pour gérer les photos en masse).

Pour aller plus loin en VBA

Et voici quelques articles sur VBA qui pourraient bien vous servir pour vos macros…

 

Laissez un commentaire

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

2 commentaires sur “VBA: trouver la hauteur et la largeur d’une image”