Pixels dans une chaîne de texte (Microsoft Excel)
Jerrold sait que la fonction LEN renvoie le nombre de caractères dans une chaîne de texte. Ce qu’il doit savoir, cependant, c’est le nombre de pixels (et non de caractères) dans une chaîne de texte. Il se demande s’il existe un moyen de calculer la valeur.
La réponse courte est non, il n’y en a pas. La réponse la plus longue est qu’il y en a peut-être. (Son déroutant? Continuez à lire.) Le problème est que les pixels – abréviation d’éléments d’image – sont essentiellement des points sur un périphérique de rendu, tel qu’un moniteur ou (plus vaguement) sur une imprimante. Le nombre de pixels emballés dans un pouce dépend de nombreuses variables, telles que la résolution du périphérique de sortie ainsi que sa taille.
Par exemple, à la même résolution, le nombre de pixels dans un pouce sur un moniteur 19 pouces sera différent du nombre sur un moniteur 21 pouces. Pourquoi? Parce que la résolution de l’écran est répartie sur une plus grande surface d’affichage, ce qui entraîne moins de pixels par pouce de cette surface d’affichage.
Jetons maintenant les polices dans le mélange. Différentes polices regroupent un nombre différent de caractères dans une mesure linéaire donnée. Vous pouvez le voir le plus souvent si vous placez un tas de texte dans une cellule, copiez la cellule sur un certain nombre de lignes, puis appliquez des polices différentes à chaque cellule. Le contenu des cellules occupera un espace horizontal différent selon la police (et la taille en points) sélectionnée.
Si vous utilisez une police monospace (comme Courier) qui a une taille définie pour tous les caractères, vous pouvez calculer les caractères par pouce pour tous les caractères, puis, en fonction du nombre de caractères, déterminer une estimation approximative du nombre de pixels. Mais vous rencontrez toujours des problèmes car vous devez prendre en compte le périphérique de sortie.
Cela ne fonctionnera pas avec les polices proportionnées car la taille des caractères varie pour chaque caractère: Ms sont beaucoup plus larges que Is par exemple. Par conséquent, pour chaque caractère de chaque police (et peut-être même chaque taille de police), il faudrait une table de taille de pixel et il faudrait créer une fonction pour parcourir la chaîne et conserver un total cumulé des tailles de chaque caractère. Cela devient encore plus compliqué si divers attributs de caractères, tels que gras ou italique, ou appliqués à la police.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (3802) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.