Macros calc en VB : taille textes dans dialogue

Fermé
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 - 24 avril 2016 à 23:36
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 - 4 mai 2016 à 01:24
Bonjour,

Après avoir réalisé une boîte de dialogue pour un classeur avec du texte de différentes tailles sous linux Mint 13 KDE avec Libre Office 3.5, un test fonctionnel du fichier sur un autre ordinateur fonctionnant sous Windows 7 avec Libre Office 5.0, pose un gros problème d'affichage des textes.

Ils sont affichés dans une taille excédant leur cadre, en l’occurrence des contrôles étiquettes. Par exemple une taille d'un gros titre à 54 sous Linux doit passer à 40 sur l'ordinateur Windows pour s'afficher non tronqué. À l'inverse, en adaptant les tailles pour l'ordinateur Windows, les polices s'affichent riquiqui dans la même boîte de dialogue de l’ordinateur sous Linux.

Malheureusement, le projet devrait contenir plusieurs boîtes de dialogue et passer d'un ordinateur à l'autre régulièrement.

Je pense à un paramètre concernant l'OS de Windows ou Linux, mais je ne comprends pas comment cela ne toucherait que les contrôles d'une boîte de dialogue construite avec le gestionnaire de boîte, rubrique Macros d'un classeur.

Cela me dépannerait bien si un membre de ce forum connaissait le problème et avait la solution. Je patauge depuis plusieurs jour à chercher sans solution bien que je comprenne qu'il y a une question de reconnaissance de poilice, mais même en utilisant une police de substitution comme Arial, rien ne s’améliore...

Je ne vois pas dans ce forum comment joindre un fichier d'exemple...
A voir également:

3 réponses

shunesburg69 Messages postés 1057 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 26 février 2020 215
Modifié par shunesburg69 le 25/04/2016 à 00:44
C'est sûrement dû à la police d'écriture que tu utilises qui n'est pas sur l'un des deux système d'exploitation, pour être tranquille mets la police en "Liberation Sans", qui s'installe avec LibreOffice comme ça pas de risque de non présence sur l'un des postes.

Comme LibreOffice, Apache OpenOffice est un fork d'OpenOffice 1er du nom
0
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016
25 avril 2016 à 08:38
Merci shunesburg69,
J'avais cet espoir de la solution dans ta réponse.
Malheureusement, le problème de sur-dimensionnement du texte dans son cadre persiste coté ordinateur sous Windows.
Quand je dis sur-dimensionnement, c'est peur-être le contraire sur l'ordinateur Linux, qui sous-dimensionnerait mes textes si une taille de 54 pour un gros titre te paraît une taille inhabituelle dans tes propres projets...
0
shunesburg69 Messages postés 1057 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 26 février 2020 215
25 avril 2016 à 12:27
Sinon regarde au niveau de la résolution d'écran, si elle est différente ça peut beaucoup changer l'affichage des dialogues d'un PC à un autre.
0
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 > shunesburg69 Messages postés 1057 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 26 février 2020
25 avril 2016 à 19:23
Eh oui, elle est différente : 1680 X 1050 pour l'ordinateur de création sous Linux et 1366 X 720 pour l'ordinateur Windows qui dénature la taille des textes dans la boîte du gestionnaire des «dialogues».

Cependant, je pensais que le pixel serait l'unité commune et que l'affichage serait dans la proportion générale et pas seulement au niveau des textes de la boîte.

D'ailleurs, les msgbox s'affichent avec des textes de taille normale dans leur boîte sur les 2 ordinateurs.

Pourquoi tout s'affiche correctement sauf ces textes dans les boîtes créées. Manque-t-il une ligne de code déboguant cette situation comme pour la couleur personnalisée par macro des fonds de contrôles (version LibO3) ?

Si le problème est bien la résolution différente et s'il n'est pas possible d'agir par macros sur la taille des textes via un calcul de proportion basé sur ces résolutions respectives, mon projet est mort avec Libre Office et il faut que j'explique ça.
0
shunesburg69 Messages postés 1057 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 26 février 2020 215 > Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016
Modifié par shunesburg69 le 25/04/2016 à 21:55
Le mieux serait de mettre la taille en "em" au lieu de "px" (pixel) ou pt (point), car cette valeur est en fonction de l'écran et pas absolu comme le pixel ou le point. Mais je sais pas si c'est possible de mettre les valeurs en "em". Pour info ton LibreOffice 3.5 est obsolète depuis plusieurs années déjà tu ferais bien de le mettre à jour ça résoudrait sûrement pas mal de souci.
0
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016 > shunesburg69 Messages postés 1057 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 26 février 2020
27 avril 2016 à 17:30
Merci pour ton intervention.

Effectivement, je viens de passer à Libre Office 5.

J'ai trouvé un site qui évoque la question d'une différence d'unité de mesure entre les polices et l'interface. En fait il s'agit de ce que chaque système attribue en pixels pour un point d'unité des polices :
http://coin.des.experts.pagesperso-orange.fr/reponses/faq9_32.html

Libre Office charge des polices dont les tailles s'expriment en points (pt) dans une interface en pixels. Il y a donc un nombre de pixels différent par système attribué à un point. Ce qui provoque donc l'agrandissement hors cadre des textes quand le classeur passe de Linux à Windows.

Toujours d'après le site cité, on aurait 75 dpi (points par pouce) soue Linux, tandis que Windows dispose de 96 dpi. Il y a un calcul à faire pour diminuer ou augmenter la taille des polices entre les systèmes selon le système dans lequel a été conçu la boîte de dialogue par rapport à son affichage dans un autre système..
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
Modifié par eriiic le 25/04/2016 à 20:39
Bonjour,

Et avec un truc comme ça ?
Dim OS As String, taillePolice As Long
OS = gauche(Application.OperatingSystem, 3)
If OS = "Win" Then taillePolice = 40 Else taillePolice = 54

Ou bien en testant la résolution
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
27 avril 2016 à 17:40
Et ?
0
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016
1 mai 2016 à 20:02
Voilà une bonne idée, cependant mon problème est le rapport que chaque plate-forme utilise pour afficher ses caractères.

Sauf modification depuis, Mac attribue 1 pixel pour 1 point, Windows 4 pixels pour 3 points, et j'ignore les données pour Linux.

Si le point qui définit les tailles des polices pour l'impression a une valeur constante, le nombre de pixels pour les afficher, diffère par système Mac, Windows et Linux, pour ne citer qu'eux...

Les DPI plus ou moins denses selon les écrans, sauf erreur de ma part et sous ton contrôle, agissent proportionnellement sur les tailles d'affichage des polices et des éléments constituant les boîtes.

Maintenant, en réalité, les dimensions des éléments des boîtes ne sont pas exprimées en pixels mais en «Ma», qui résulte d'un système interne à Open Office et je l'espère, Libre Office également, nommé «Map AppFont». Pour l'histoire il y avait eu le «Twip» qui était pour ces suites, une unité de référence au pixel, point, pouce et mm. Le Twip est obsolète.

Ce «Ma» fait une subdivision à partir de la moyenne des tailles des polices du système dans lequel se joue notamment le classeur, pour dimensionner les boîtes et leurs contrôles.

Malheureusement je constate que malgré ce dispositif, les polices même à 16 pt, n'entrent pas sous Windows dans les étiquettes constituées sous Linux. Les polices semblent restées dans leur taille d'origine comme venues sans changement de taille, directement de mon écran du poste Linux à celui du petit portable Windows.

La question reste ouverte...
0
Yakacoder Messages postés 12 Date d'inscription dimanche 24 avril 2016 Statut Membre Dernière intervention 4 mai 2016
4 mai 2016 à 01:24
Je reprends le sujet après avoir essayé en vain de trouver la solution, s'il n'y en a qu'une.
Rien ne produit l'affichage des textes proportionnellement à chaque taille d'affichage de la boîte sous chaque plate-forme.
Rien, sauf avec les contrôles de formulaire. Dans ce cas les contrôles sont directement affichés sur la feuille de calcul. Ceux-ci ne m'auraient posé aucun problème de taille. Les textes y sont parfaitement contenus d'un ordinateur à l'autre de la même façon.
Quel est cette différence ?
0