OVH Cloud OVH Cloud

MSFlexGrid

5 réponses
Avatar
Shewy80
Bonjour à tous

Je souhaite savoir s'il est possible de redimentionner automatiquement un
MSFlexGrid en fonction du nombre de col et de ligne

ou encore mieux que l'utilisateur puisse le faire à l'aide de la souris par
exp une fois le UserForm load ?!

Merci de vos aides et conseils

5 réponses

Avatar
YannX
Bonsoir,

Je pense que la seule solution est d'inclure le redimensionnement
dans la fonction d'initialisation...

If (0 = nb_Pnts) Then ReDim rT_Pnts(1, nb_Cols) ' cas ou non encore créé !
n0 = nb_Pnts ' nb.precedent de points dans la variable
ReDim Preserve rT_Pnts(nb_P, nb_Cols) ' Preserve Redim

@+


"Shewy80" a écrit dans le message de
news:cm2nbr$gq3$
Bonjour à tous

Je souhaite savoir s'il est possible de redimentionner automatiquement un
MSFlexGrid en fonction du nombre de col et de ligne

ou encore mieux que l'utilisateur puisse le faire à l'aide de la souris


par
exp une fois le UserForm load ?!

Merci de vos aides et conseils




Avatar
Shewy80
Merci !!!!!!!!!!!


"YannX" a écrit dans le message de
news:
Bonsoir,

Je pense que la seule solution est d'inclure le redimensionnement
dans la fonction d'initialisation...

If (0 = nb_Pnts) Then ReDim rT_Pnts(1, nb_Cols) ' cas ou non encore créé


!
n0 = nb_Pnts ' nb.precedent de points dans la variable
ReDim Preserve rT_Pnts(nb_P, nb_Cols) ' Preserve Redim

@+


"Shewy80" a écrit dans le message de
news:cm2nbr$gq3$
> Bonjour à tous
>
> Je souhaite savoir s'il est possible de redimentionner automatiquement


un
> MSFlexGrid en fonction du nombre de col et de ligne
>
> ou encore mieux que l'utilisateur puisse le faire à l'aide de la souris
par
> exp une fois le UserForm load ?!
>
> Merci de vos aides et conseils
>
>




Avatar
Jose.Richer
Bonjour à tous,
cette partie du fil m'interesse car cela fait un moment que je cherche
une procedure pour adapter EXACTEMENT lales dimensions d'un flexgrid à
son contenu en nombre de colonnes et de ligne , avec peut etre un
scroll vertical.ET je ne trouve pas .
QQ peut il m'aider?je ne comprend pas la procedure
precedente.Bref,j'ai vraiment besoin d'aide.(suis sous VBA)
Merci
Avatar
Shewy80
voilà une réponse
adapte en larg de col, mais pas de ligne

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
Jose.Richer
bonjour et merci,

je vais essayer des ce soir:il n'y a pas de raison que cela ne marche pas!
A+


"Shewy80" wrote in message news:<cm8l2d$c93$...
voilà une réponse
adapte en larg de col, mais pas de ligne

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