Rebonjour,
En revanche, même si j'ai effectivement la même chose affichée que chez toi, c'est-à-dire "
Hauteur: 15,00 (20 pixels)", je ne crois pas que ça veuille dire qu'un pixel fait 0,75 point.
(la résolution de mon écran n'est probablement pas la même que celle de ton écran, et pourtant j'ai le même message...
)
La taille d'un point étant fixe, ça voudrait dire que tous les pixels ont la même taille, quelle que soit la résolution, ce qui est totalement absurde car illogique.
Cela doit avoir une autre signification.
Sans trop vouloir m'avancer, je pense qu'un "pixel Excel" correspond simplement à la résolution qu'Excel offre pour les cellules, shapes et autres objets graphiques.
Par exemple, quand on déplace une forme (un rectangle par exemple) à la main (avec les flèches →↑↓← une fois la forme sélectionnée), cette forme se déplace par pas de 0,75 point.
De même depuis VBA, si après avoir sélectionné la forme on exécute
selection.left = selection.left + 0.25 dans la fenêtre d'exécution, la forme ne se déplace réellement qu'une fois sur 3 et alors de 0,75 point ! (la position imposée par
selection.left est mémorisée dans la forme, mais le positionnement réel à l'écran n'est possible que par pas de 0,75 point)
Il faudrait vérifier avec un écran de course, mais je pense que le résultat serait le même (positionnement/taille des objets graphiques et taille des cellules par pas de 0,75 point soit 0,2646 mm et pas mieux). En revanche, un écran de course devrait permettre d'afficher un espace plus grand.
Pour info, la résolution de mon écran est 1366 x 768, sa taille est de 34,5 x 19,5 cm et application.Width et application.Height ramènent 1036,5 x 558 points (tiens tiens, 1036,5 / 1366 = 0,7588 et 558 / 768 = 0,7266, on n'est pas loin du 0,75 !)
Ceci dit, 0,75 point soit 0,2646 mm, c'est quand même très correct dans la plupart des applis de bureautique.
En te souhaitant bon courage pour attaquer les paragraphes 2. et 3.
Oui, ça a l'air d'être un peu costaud pour moi, mais je vais tout de même essayer. Merci.
Le paragraphe 2. n'est pas très difficile, c'est simplement un fonction qui convertit des points vers cette unité ésotérique qu'est la "largeur du caractère 0 dans la police normale".
Sans savoir quelle est la police normale ni quelle est la largeur réelle du "0" dans cette police, on impose une largeur de 20 caractères "0" à une colonne, puis une largeur de 40 caractères "0" à cette même colonne,
en relevant à chaque fois la largeur réelle (en points) obtenue. Un petit calcul permet d'obtenir la valeur des constantes recherchées. Puis on rétablit la largeur initiale de la colonne qui a servi de test. Enfin on renvoie le résultat du calcul appliqué à la valeur passée en paramètre.
Ceci est basé sur le postulat suivant, établi d'après mes constatations personnelles mais vérifié avec différentes polices normales et différentes largeurs (très grandes et très petites) :
La largeur réelle w (exprimée en points) d'une colonne imposée par
myColumn.ColumnWidth = c est égale à :
w = K1 × c si c ≤ 1
w = K2 × c + K3 si c ≥ 1
Le paragraphe 3. est facultatif.