Bonjour,
Je souhaite que les largeurs des colonnes dans un ListBox s'ajustent automatiquement. J'utilise le code ci-dessous. Curieusement tout fonctionnait parfaitement et ... soudainement ça ne fonctionne plus. J'obtiens le message d'erreur suivant à la ligne
.ColumnWidths = Join(tcol, ";").
Erreur d'exécution '-2147352571 (80020005)
Impossible de définir la propriété ColumnWidths. Le type ne correspond pas.
****************************************************************************
Le userform est ComptesDonnees. Et le listbox est ListeComptesDonnees.
Je me suis inspiré d'un fichier de Philippe Tulliez trouvé sur Internet. Ce fichier aussi fonctionnait parfaitement et ... soudainement ... lui aussi ne fonctionne plus. C'est comme si quelque chose se produit sur l'ordinateur pour désactiver une composante
ou???
J'ai cherché sur Internet et cela semblait être relié à une variable mal définie ou mal utilisée mais sans en être certain et sans pouvoir réussir à régler la situation. D'autres ont aussi éprouvé cette même difficulté.
Comment résoudre cette situation? Merci à l'avance.
****************************************************************************
Option Explicit
Dim tcol() As String, c As Long, tw As Double
Sub Pro_LISTACC()
'On Error GoTo Fin
Application.ScreenUpdating = False
Feuil9.Unprotect Feuil7.Range("CN_ValidShPwd").Value
Feuil9.AutoFilterMode = False
Application.Names.Add Name:="Var_ListAcc", RefersTo:=Feuil9.Range(Feuil9.Cells(Feuil9.Range("CN_ChifZoneFirstRow").Row
- 2, Feuil9.Range("CN_ChifCpteZone").Column), Feuil9.Cells(Feuil9.Range("CN_ChifZoneLastRow").Row, Feuil9.Range("CN_ChifChiffrierCTZone").Column))
ComptesDonnees.Caption = "Liste des comptes"
ComptesDonnees.ListeComptesDonnees.RowSource = "Var_ListAcc"
ComptesDonnees.ListeComptesDonnees.ColumnCount = 8
ComptesDonnees.ListeComptesDonnees.TextColumn = 1
With ComptesDonnees.ListeComptesDonnees
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(Feuil9.Range("Var_ListAcc").Cells(1, c).Width) * 1: 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 If