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
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.