Lassé de perdre du temps à la mise à jour de la propriété ColumnWith d’un contrôle ListBox ou ComboBox ?
Voici une procédure d’adaptation automatique de cette propriété en fonction de la largeur des colonnes de la liste de données définies dans la propriété RowSource de ce même contrôle (Autrement dit la largeur des colonnes de la feuille d’excel).
Rappel
La propriété ColumnWidth permet de définir la largeur des colonnes d’un contrôle ListBox ou ComboBox. Par défaut la largeur des colonnes est de 72 points (72 points=1 pouce).
Lorsque nous décidons d’avoir plus d’une colonne, nous devons modifier la valeur de la propriété ColumnCount du dit contrôle.
Codes de la procédure AutoColumnWidth
A placer dans le formulaire (UserForm) ou dans un module standard
Private Function AutoColumnWidth(ctrlList As MSForms.Control, oRng As Range) As Boolean ' Arguments ' ctrlList (obj Ctrl) ' Nom du contrôl ListBox ou ComboBox ' oRng (obj Range)' Plage utilisée pour la liste Dim tcol() As String, c As Long, tw As Double With ctrlList ReDim tcol(.ColumnCount - 1) For c = 1 To .ColumnCount ' Calcul largeur des colonnes et le place dans un string par concaténation tcol(c - 1) = CStr(oRng.Cells(1, c).Width) * 0.85: tw = tw + tcol(c - 1) Next DoEvents .Width = tw + UBound(tcol) + 2 ' Rectifie la largeur du ListBox ou ComboBox .ColumnWidths = Join(tcol, ";") End With End Function
La largeur de chaque colonne du ListBox ou ComboBox s’adaptera automatiquement à celle des colonnes de votre feuille
Procédure d’appel de cette fonction
AutoColumnWidth Me.cboBox, rngData
Dans cette ligne de code, cboBox est le nom du contrôle (ici un contrôle ComboBox) et rngData est la variable objet représentant la liste des données.
Classeur exemple à télécharger
[wpdm_package id=’531′]
Bonjour,
Pourriez vous etre plus explicite lorsque vous dites :
rngData est la variable objet représentant la liste des données.
J’ai regardé dans votre code le rngData mais je ne vois pas comment faire dans mon fichier Excel
Merci à vous
Bonjour,
rngData est une variable objet que vous retrouvez dans le code qui se trouve dans le classeur à télécharger.