MshflexGrid - Ajuster la Taille des Colonnes au Texte

cs_Cpapy Messages postés 133 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 25 septembre 2007 - 26 avril 2007 à 12:04
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 28 avril 2007 à 22:31
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

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 21:59
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  )
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 22:19
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 
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 avril 2007 à 22:31
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)
0
Rejoignez-nous