OVH Cloud OVH Cloud

MSFlexGrid : Larg de Col

5 réponses
Avatar
Shewy80
Bonjour à tous

J'ai regardé pas mal de source pour trouver une fonction simple qui me
redimentinne la larg de mes col en fonction du mot ecrit dedans.

J'ai essayé en faisant : Len(MSFlexGrid.text) pour chaque cellule.
Je récupere bien la valeur la plus grande. (le mot ayant le + de caracteres)

Mais commeent ensuite donné cette valeur à la col en question ??

JE voudrai vraiment une fonction courte et plus simple possible.

Je ne comprend pas comment fonctionne la larg des col.
c'est la premiere fois que je me sers de MSFlexGrid .... donc forcement !

de meme j'ai essayé avec MSFlexGrid.formatstring

voici ma 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
For nbrow = 0 To nbrows
With MSFlexGrid1
.Col = nbcol
.Row = nbrow
End With

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

MSFlexGrid1.FormatString = max
max = 0
longtxt = 0
Next

End Function

5 réponses

Avatar
YannX
Bonsoir,

Je suis dans la meme situation que toi : debutant sur le FlexGrid.....
(et bientot sur les MSChart... -> cf. Tuto de Developpez.com Merci Claire
M.)
Si tu as trouvé des Docs intéressantes, fais-moi signe, en publiant tes
références...

Mais voila un bout de mon code qui pourra te donner des idées :
With grd_Pnts
.Cols = 4 ' pourra etre passée à 2 au lieu de 4 !!!
.Rows = 10 ' .Clear
.Col = 0 ' positionner les titres de colonnes
.ColWidth(0) = 600 ' 960 par défaut.....

"Shewy80" a écrit dans le message de
news:cm2s9l$oll$
Bonjour à tous

J'ai regardé pas mal de source pour trouver une fonction simple qui me
redimentinne la larg de mes col en fonction du mot ecrit dedans.

J'ai essayé en faisant : Len(MSFlexGrid.text) pour chaque cellule.
Je récupere bien la valeur la plus grande. (le mot ayant le + de


caracteres)

Mais commeent ensuite donné cette valeur à la col en question ??

JE voudrai vraiment une fonction courte et plus simple possible.

Je ne comprend pas comment fonctionne la larg des col.
c'est la premiere fois que je me sers de MSFlexGrid .... donc forcement !

de meme j'ai essayé avec MSFlexGrid.formatstring

voici ma 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
For nbrow = 0 To nbrows
With MSFlexGrid1
.Col = nbcol
.Row = nbrow
End With

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

MSFlexGrid1.FormatString = max
max = 0
longtxt = 0
Next

End Function




Avatar
Gloops
Bonjour,

As-tu jeté un coup d'oeil là ?

http://www.vbfrance.com/code.aspx?ID468
______________________________________
Shewy80 a écrit, le 31/10/2004 15:18 :

Bonjour à tous

J'ai regardé pas mal de source pour trouver une fonction simple qui me
redimentinne la larg de mes col en fonction du mot ecrit dedans.

J'ai essayé en faisant : Len(MSFlexGrid.text) pour chaque cellule.
Je récupere bien la valeur la plus grande. (le mot ayant le + de caracteres)

Mais commeent ensuite donné cette valeur à la col en question ??

JE voudrai vraiment une fonction courte et plus simple possible.

Je ne comprend pas comment fonctionne la larg des col.
c'est la premiere fois que je me sers de MSFlexGrid .... donc forcement !

de meme j'ai essayé avec MSFlexGrid.formatstring

voici ma 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
For nbrow = 0 To nbrows
With MSFlexGrid1
.Col = nbcol
.Row = nbrow
End With

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

MSFlexGrid1.FormatString = max
max = 0
longtxt = 0
Next

End Function




Avatar
Shewy80
Voilà j'ai trouvé une solution !!
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, à compter le
nombre de caractères.
s'il est plus grand que le précédent alors je copie ce mot dans le Label à
autosize.
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

puis on recommence avec la seconde col !

Voilà ! Chez moi ça marche nikel !


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
Avatar
Jean-Marc
"Shewy80" a écrit dans le message de
news:cm5vhn$1dh$
Voilà j'ai trouvé une solution !!
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, à compter le
nombre de caractères.
s'il est plus grand que le précédent alors je copie ce mot dans le Label à
autosize.
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
puis on recommence avec la seconde col !
Voilà ! Chez moi ça marche nikel !




<snip le code>

Hello,

Bravo! Voila un bel exemple de bonne programmtion.
Inventivité, créativité, que du bon!

Bienvenue chez les mordus du VB et de la prog en général :-)

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Shewy80
> Hello,

Bravo! Voila un bel exemple de bonne programmtion.
Inventivité, créativité, que du bon!

Bienvenue chez les mordus du VB et de la prog en général :-)

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."






Merci beaucoup ça fais plaisir ! d'autant que je suis dans la catégorie des
débutants !