Bonjour!
Petite fonction bien pratique.
Elle ajuste la largeur des colonne de votre datagrid au contenus de celle-ci.
J'en ai pas trouvé sur le site alors je l'ajoute!
C'est ma première source alors on reste gentil hein? :D
Source / Exemple :
'--------------------------------------------------------------------------
'
' Ajuste la largeur des colonnes au contenus de la grid
'
' Parametres:
' oDataGrid -> le nom de la Datagrid à redimensionner
' oForm -> le nomn de la form
'
' Note: Si ColumnHeading est plus large que CellWidth, HeadingWidth est utilisé
'
'Pour l'utilisé vous appelez dans votre code comme ceci :
' DatagridColumnAutoResize nomForm.nomDataGrid, nomForm
'--------------------------------------------------------------------------
Public Sub DatagridColumnAutoResize(ByRef oDataGrid As DataGrid, _
ByRef oForm As Form)
Dim i As Integer, iMax As Integer
Dim t As Integer, tMax As Integer
Dim iWidth As Integer
Dim vBMark As Variant
Dim aWidth As Variant
Dim cText As String
Dim oFont As Font
On Error Resume Next
oFont = oForm.Font
oForm.Font = oDataGrid.Font
iMax = oDataGrid.Columns.Count - 1
ReDim aWidth(iMax)
For i = 0 To iMax 'init maxwidth holder
aWidth(i) = 0
Next
tMax = oDataGrid.VisibleRows - 1
For t = 0 To tMax 'nombres de lignes
vBMark = oDataGrid.GetBookmark(t)
For i = 0 To iMax 'nombres de colonnes
cText = oDataGrid.Columns(i).CellText(vBMark)
iWidth = oForm.TextWidth(cText)
If iWidth + ((12 * Len(cText)) + 220) > aWidth(i) Then
'quelques ajustements manuels
aWidth(i) = iWidth + ((12 * Len(cText)) + 220)
End If
If t = 0 Then 's'occupe des headers
iWidth = oForm.TextWidth(oDataGrid.Columns(i).Caption)
If iWidth + ((12 * Len(cText)) + 220) > aWidth(i) Then
aWidth(i) = iWidth + ((12 * Len(cText)) + 220)
End If
End If
Next
Next
For i = 0 To iMax ' Assigne la nouvelle largeur de colonne
oDataGrid.Columns(i).Width = aWidth(i)
Next
oForm.Font = oFont
End Sub
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.