Alimenter une listbox
Bonjour chers amis !
Je rencontre un petit problème sur ma listbox... Ce code affiche dans ma listbox certaines ligne vide de ma base de donné.
J'aimerai svp éviter cela mais je ne sais pas comment procéder. J'ai l'impression que le problème vient du Rowsource.
Merci d'avance pour votre aide.
Private Sub show_base_donnée()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Base article")
Dim lr As Integer
lr = Application.WorksheetFunction.CountA(sh.Range("A:A"))
If lr = 1 Then lr = 2
With Me.ListBox1
.ColumnCount = 4
.ColumnHeads = True
.ColumnWidths = "60;180;80;80"
.RowSource = "'Base article'" & "!A2:D9999" & lr
End With
End Subbonjour,
Euh... Une base de donnée ne devrait as comporter de lignes vides !
RowSource ne peut convenir que si tu as une liste "nommée quelque part... si tu utilises une BD à trou il faut utiiser la méthode AddItem pour nourrir ton Listbox :
par exemple (merci Silkyroad...) :
Private Sub UserForm_Initialize()
Dim Cell As Range
Dim Unique As New Collection
Dim Valeur As Range
Dim i As Integer
'Récupère la derniere ligne non vide dans la colonne A
i = Range("A65536").End(xlUp).Row
On Error Resume Next
'boucle sur les cellules de la colonne A
For Each Cell In Range("A1:A" & i)
'Stocke les données dans une collection
'(La collection n'accepte que des données uniques et permet donc
' de filtrer facilement les doublons).
Unique.Add Cell, CStr(Cell)
Next Cell
On Error GoTo 0
'Boucle sur le contenu de la collection pour alimenter la ListBox
For Each Valeur In Unique
Me.ListBox1.AddItem Valeur
Next Valeur
End SubA+