Ajuste les colonnes automatiquement
Source / Exemple :
Dim WithEvents LblTaille As Label
Dim i As Long, j As Long, sizeCol As Long
Dim bPassage As Boolean
'Init
i = 0
j = 0
sizeCol = 0
EspaceColonne = 300
bPassage = True
'Controle dynamique
Set LblTaille = Me.Controls.ADD("VB.Label", "LblTaille", Me)
'Propriétés controle
With LblTaille
.Caption = ""
.AutoSize = True
.Left = 0
.Top = 0
End With
'Infobulle
MSHFlDonnees.ToolTipText = "Affichage des informations"
'Colonnes
For i = 0 To MSHFlDonnees.Cols - 1
'Init largeur colonne
sizeCol = 0
bPassage = True
'Lignes
For j = 0 To MSHFlDonnees.Rows - 1
'Récupère le texte
LblTaille.Caption = MSHFlDonnees.TextMatrix(j, i)
If Not bPassage Then
'Largeur colonne(+ grande)
If LblTaille.Width > sizeCol Then
sizeCol = LblTaille.Width
End If
Else
'1ère ligne
sizeCol = LblTaille.Width
bPassage = False
End If
Next j
'Appliquer la largeur
MSHFlDonnees.ColWidth(i) = sizeCol + EspaceColonne
'Colonne suivante
Next i
'Rafraichissement
MSHFlDonnees.Refresh
set LblTaille = nothing
Conclusion :
lbltaille >>> controle dynamique
mshfldonnees >>> la grille a ajuster
espacecolonne >>> pour laisser un peu de marge
Petite source(ma 1ère en+) mais parfois utile je trouve
3 nov. 2006 à 15:43
24 juil. 2004 à 22:14
c'est en en effet plus simple mais je viens de tester, pas très fiable comme calcul....
22 juil. 2004 à 13:32
Public Function AjustTaille(Str As String, FontSize As Long) As Long
'-----------------------------------------<
'Ajuste la taille d'un contrôle ou de la colonne d'un Mshflexgrid
'en fonction de son contenu
'retourne la nouvelle largeur du contrôle en twips
'-----------------------------------------
Const PointsPerPouce = 72
Const TwipsPerPouce = 1440
AjustTaille = (Len(Str) * FontSize / PointsPerPouce) * TwipsPerPouce
End Function
29 oct. 2003 à 11:54
MSHFlDonnees.Redraw = False
et remettre à True après la boucle.
Simple suggestion...
29 oct. 2003 à 09:42
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.