Bonjour, j'ai créé une fonction qui permet de remplir automatiquement une listbox a plusieurs colonnes avec un tableau structuré.

comme l'indique le nom du sujet j'ai un problème avec le rowsource de ma listbox (pour afficher des entêtes)

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function ListRefresh(LstBox As Object, sht As Worksheet, NomTab As String)
Dim nbCol As Integer
 
LstBox.Clear
 
nbCol = sht.ListObjects(NomTab).ListColumns.Count
 
With LstBox
.ColumnCount = nbCol
.ColumnHeads = True
.RowSource = sht.Range(NomTab & "[#Headers]").Address
.List = sht.Range(NomTab).Value
End With
 
End Function
Tout fonctionne bien (bonne incrémentation de ma listbox) , j'ai rajouté par la suite le rowsource avec l'adresse des entêtes de mon tableau mais ça me mets une incompatibilité de type sur la ligne .Rowsource. (pourtant la ligne "sht.Range(NomTab & "[#Headers]")" nous donne bien un objet de type range correspondant a l’entête de mon tableau)

Si quelqu'un a déjà rencontré ce cas de figure j'aimerais bien savoir comment faire.

Merci =)

EDIT : Alors je suis arrivé a faire passer la ligne en rajoutant .address : sht.Range(NomTab & "[#Headers]").Address

Mais maintenant j'ai un erreur a la dernière ligne : ListBox1.List = sht.Range(NomTab).Value avec un "permission refusée"