Msflexgrid : ajuster automatiquement la larg. des cols.

Contenu du snippet

Bonjour à tous.
Premier code que je mets en ligne. Vous en trouverez sans doute des plus complets.
Moi je voulais une fonction simple, qui m'ajuste automatiquement la largueur des mes colones de mon FlexGrid en fonction du mot le plus grand contenu dans cette dernière.

Alors il faut :
1 MSFlexGrid1 de meme nom
1 Label de nom LblMOT avec surtout la propriété "AutoSize" à True !!!!

Ensuite la technique consiste à ballayer toutes les cellules, et à compter le nombre de caractères.
je stock cette longueur de chaine dans une variable et ensuite je boucle sur toutes les cellules de la colonne. Si le suivant est plus grand que le précédent alors je copie ce mot dans le Label à autosize.
(Ainsi le label s'adapte automatiquement donnant la larg)
Des que j'ai fini ma col, je vais voir le label et je prend la propriété "Width" auquel je rajoute un p'tit peu: ici 300 (question de lisibilité afin d'éviter que les mots des col soit trop cote à cote)
Puis on recommence avec la col suivante.

Source / Exemple :


'Voici l'appel de fonction :
        Call redimflexGd(MSFlexGrid1.Cols, MSFlexGrid1.Rows)

'Voici la Fonction :
'----------------------------------------------------------------------------
Function redimflexGd(nbcols As Integer, nbrows As Integer)
  Dim nbcol As Integer
  Dim nbrow As Integer
  Dim longtxt As Integer
  Dim max As Integer

max = 0
longtxt = 0

For nbcol = 0 To nbcols - 1
  For nbrow = 0 To nbrows - 1
      With MSFlexGrid1
        .Col = nbcol
        .Row = nbrow
      End With

      longtxt = Len(MSFlexGrid1.Text)
      If longtxt > max Then
        max = longtxt
        LblMOT.Caption = MSFlexGrid1.Text
      End If
   Next

MSFlexGrid1.ColWidth(nbcol) = LblMOT.Width + 300
max = 0
longtxt = 0
Next

End Function

Conclusion :


Merci de me donner vos commentaires.
ça permet d'évoluer et de comprendre des erreurs que j'aurais pu faire.

@++
Guillaume B
(Shewy80)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (SuperTonic)