MshflexGrid - Ajuster la Taille des Colonnes au Texte

Signaler
Messages postés
133
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
25 septembre 2007
-
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Bonjour à tous,


Mshflexgrid - Comment ajuster la largeur d'une colonne en fonction de son contenu

Si la première cellule de ma colonne contient   "ABCD"            
    la seconde       "             "             "            "     "D"
    la troisième    "              "             "           "      "EFGHIJKL" 

Je souhaiterais que la taille de ma colonne soit ajustée pour afficher "EFGHIJKL"  et pas un caractère de plus.

Par avance merci.


 

23 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Salut MPI;

Ton 100 ?  tu es avec une résolution horizontale de 15 twips par pixel, n'est-ce-pas ? (je viens de te mettre sur la voie ... des bordures ... 2 bordures en pixels  )
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
regarde :

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long


Private Sub Form_Activate()
    Me.Move 0, 0, Screen.Width, Screen.Height
    Me.FontSize = 15
    Me.AutoRedraw = True
    CurrentY = Me.Height / 8
    Me.Print "largeur d'une bordure " & Str$(GetSystemMetrics(5)) & pixels
    Me.Print " à laquelle il convient d'ajouter la marge de départ (2 pixels) et de fin (encore 2 pixels)"
    Me.Print "ce qui fait au total 5 pîxels"
    Me.Print "et il faut donc ajouter 5 x " & Screen.TwipsPerPixelX & " = " & 5 * Screen.TwipsPerPixelX; ""
End Sub

Mais ce n'est pas tout !
Tu a calculé sur la Font de la Form et pas de la FlexGrid, attention.
Il te faut écrire quelquepart avant d'utiliser TextWidth :
set me.font = La_FlexGrid.font  (important)

Vas-y 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Excuses (je n'ai compté qu'une bordure... quel âne je fais)C'est donc 2 + 2 + 2  6 x 15 90 twips
Corrige mon code
Me.Print "ce qui fait au total 6 pixels"
Me.Print "et il faut donc ajouter 6 x " & Screen.TwipsPerPixelX & " = " & 6 * Screen.TwipsPerPixelX; "

Bonne nuit (c'est mon heure de dodo)
1 2