VBA: Trouver la résolution de l’écran

Si vous avez besoin d'adapter votre Classeur (Workbook) ou un formulaire VBA en fonction de l'écran de l'utilisateur, vous pouvez utiliser le langage VBA pour modifier le "Zoom" de la feuille (voir le code VBA plus bas).

Pour savoir de quelle manière adapter le Zoom vous devez connaître la résolution de l'écran de l'utilisateur. Les deux fonctions suivantes vous permettent d'obtenir la Largeur de l'écran, la Hauteur de l'écran et, naturellement, leur combinaison.

VBA: trouver la résolution de l'écran
VBA: trouver la résolution de l'écran

Trouver la résolution de l'écran avec VBA

Le code fait appel à la fonction GetSystemMetrics32 de la librairie "User32". Si cela ne vous dit rien, cela n'a pas tellement d'importance. Sachez seulement que le code de la Déclaration qui suit doit se trouver au début de votre Module (avant même les fonctions):

Grâce à cette déclaration, vous pouvez accéder à certaines valeurs du système dont la résolution de l'écran de l'ordinateur.

Mise-à-jour: pour la version 64-bit d'Office, j'ai modifié le code en ajoutant PtrSafe après Declare.

Fonctions VBA pour trouver la Largeur et la Hauteur de l'écran

Et voici donc les deux fonctions VBA prêtes à l'emploi (vous pouvez les utiliser telles quelles dans votre Projet après un copier/coller). Elles retournent la hauteur et la largeur de l'écran en pixels.

 

Exemple d’utilisation des fonctions ResolutionEcranLargeur() et ResolutionEcranHauteur()

Voici comment vous pouvez obtenir le message contenant la résolution de votre écran (le résultat est formaté).

Ceci n'est qu'un exemple. Vous pouvez, bien entendu le modifier selon vos besoins.

VBA: adapter la Feuille à la taille de l'écran

Maintenant que nous avons la résolution de l'écran de l'utilisateur, nous pouvons utiliser cette information pour adapter le Zoom de la Feuille.

Nous pouvons créer deux ou même plusieurs "tailles" de la Feuille. Pour un résultat optimal, il vous faudra tester le résultat sur les différentes résolution et trouver la valeur de Zoom qui convient le mieux. Voyez l'exemple suivant…

Exemple: comment adapter le Zoom de la Sheet selon la résolution de l'écran

Dans cet exemple, la Feuille est créée sur un écran avec la largeur de 1280 pixels. Pour être sûr que l'utilisateur avec un écran avec une plus faible résolution (par exemple: la largeur assez répandue de 1024 pixels) puisse voir tout le contenu, nous adaptons le Zoom de la Feuille à 68%. L'utilisateur avec un écran de 1280 pixels de large verra le contenu dans sa taille originale (Zoom = 100%).

Pour ce code, on utilisera la construction Select Case (voir tutoriel).

Attention: pour que ce code fonctionne, vous aurez besoin également du code VBA de la Déclaration et des deux fonctions qui se trouvent plus haut.

Il s'agit d'une petite amélioration mais qui sera certainement appréciée par les utilisateurs de vos macros: pensez comme des vrais PROS – la satisfaction de l'utilisateur est primordiale!

Pour aller plus loin en VBA et en Excel

Si vous souhaitez en apprendre plus sur les possibilités de VBA et de Excel, n'hésitez pas à explorer ce site car il contient de nombreuses informations utiles. En voici quelques-unes qui pourraient vous intéresser…

 

Laissez un commentaire

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

11 commentaires sur “VBA: Trouver la résolution de l’écran”