Macros calc en VB : taille textes dans dialogue
Yakacoder
Messages postés
13
Statut
Membre
-
Yakacoder Messages postés 13 Statut Membre -
Yakacoder Messages postés 13 Statut Membre -
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...
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:
- Macros calc en VB : taille textes dans dialogue
- Vb - Télécharger - Langages
- Vb audio cable - Télécharger - Audio & Musique
- Credit calc - Télécharger - Outils professionnels
- Calc philips de dos.exe - Télécharger - Divers Web & Internet
- Libreoffice calc si cellule contient - Forum LibreOffice / OpenOffice
3 réponses
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
Comme LibreOffice, Apache OpenOffice est un fork d'OpenOffice 1er du nom
Bonjour,
Et avec un truc comme ça ?
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
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
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...
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...
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 ?
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 ?
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...
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.
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..