Ajuster mshflexgrid

Contenu du snippet

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

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.