Unieke data in listbox

Status
Niet open voor verdere reacties.

janus1janus1

Gebruiker
Lid geworden
7 apr 2005
Berichten
103
LS

Ik heb een forse lijst met data waarvan ik middels een listbox een selctie wil maken.
Bij het vullen van de listbox (additem) moeten alle voorkomende velden binnen een kolom doorlopen worden en moeten uniek opgenomen worden in de listbox.
Ik kan dit natuurlijk programmeren dat er geen dubbele gegevens in de listbox voorkomen maar volgens mij moet dit sneller kunnen.
Bij voorbaat dank voor de moeite
Janus
 
LS

Ik heb een forse lijst met data waarvan ik middels een listbox een selctie wil maken.
Bij het vullen van de listbox (additem) moeten alle voorkomende velden binnen een kolom doorlopen worden en moeten uniek opgenomen worden in de listbox.
Ik kan dit natuurlijk programmeren dat er geen dubbele gegevens in de listbox voorkomen maar volgens mij moet dit sneller kunnen.
Bij voorbaat dank voor de moeite
Janus

Plaats die elementen eerst in een Collection. Aangezien een collection geen dubbele sleutels toelaat, krijg je een unieke lijst (bij een dubbele waarde krijg je een error, dus errors tijdelijk uitschakelen). Die unieke lijst dient dan als bron voor uw unieke listbox.

Om het sneller te laten lopen, best de range in een array plaasten, en dan deze array doorlopen.
 
Voor unieke elementen kun je 'uitgebreid filter' gebruiken.
In het voorbeeld worden alle unieke elementen uit kolom A naar kolom AA gekopieerd.
Die unieke gegevens worden met 1 opdracht in de listbox gezet (de additem methode is daarvoor veel te traag)

Sub uniek()
With ThisWorkbook.Sheets(1)
.Columns(1).AdvancedFilter xlFilterCopy, , .Range("AA1"), True
.ListBox1.List = WorksheetFunction.Transpose(.Range("AA1").CurrentRegion)
End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan