Problemen bij zoeken in listbox

Status
Niet open voor verdere reacties.

Offthefield

Gebruiker
Lid geworden
27 apr 2005
Berichten
369
Ik ben bezig met het veranderen van een programma, maar ik loop vast bij het zoeken (bv. 2977) van gegevens in listbox1

Als het programma geopend wordt, komt listbox1 vol te staan met alle gegevens (alle kolommen dus),
maar als ik een nummer gaat zoeken (bv 2977) dan komen er maar de 1e 9Bekijk bijlage ZoekenRoute.xls rijen op het scherm ?

Het ligt aan de volgende regel :

ListBox1.List(ListEndRow, 10) = ws.Cells(FoundRow, 11).Value -> (volgens mij kolom J)

deze staat nu niet geactiveerd, maar als deze geactiveerd wordt (dus zonder '' voor de regel), loopt het
programma vast

Ik snap niet waarom deze fout loopt, omdat ik het aantal kolommen heb aangegeven op 15

Kan iemand mij een hint geven

bvd

Offthefield
 
Volgens de handleiding is dit gelimiteerd tot 10 kolommen voor niet gekoppelde gegevensbronnen. Harde limit ingesteld door microsoft dus
 
Wampier,

Hartelijk dank voor de snelle reactie, dit scheelt me nog een aantal uren tobben

Offthefield
 
Laat je niet geruststellen door onjuiste informatie. ;)

Als je de juiste methode gebruikt gaat het precies zoals je wil.

Code:
Private Sub UserForm_Initialize()
    cmbKeuze.List = activesheet.Cells(3, 1).CurrentRegion.Value
End Sub

Vermijd additem en rowsource bij het vullen van een listbox/combobox
 
Laatst bewerkt:
SNB de informatie is niet onjuist in deze dat bij gebruik van niet gekoppelde data er een limit is:

Als u de eigenschap ColumnCount instelt op 0, worden er geen kolommen weergegeven. Als u de eigenschap instelt op -1 worden alle beschikbare kolommen weergegeven. Voor een niet-gekoppelde gegevensbron kunnen maximaal 10 kolommen worden weergegeven (0 tot en met 9).

Als je met de hand data invoegt in een listbox kun je dus niet meer dan 10 kolommen hebben. Je kunt het wel koppelen aan een grotere range, maar dan werkt de met de hand gebouwde zoekfunctie (waar de vraag dus over ging) niet meer, omdat je bij handmatige invoer dus maar 10 kolommen mag gebruiken.
 
Snb,

Bedankt voor de reactie, maar ik zie nog geen verandering, want bij het zoeken van bv. 2851 zie je alleen de 1e 9 kolommen

Hoe werkt cmbKeuze.List = ActiveSheet.Cells(8, 1).CurrentRegion.Value ? trouwens

bvd

mvrgr

Offthefield
 
Als je de goede methode gebruikt hoef je niet eens te zoeken.
Zie de bijlage.
Realiseer je dat cmbkeuze.list alle gegevens uit de database van het aktieve werkblad bevat.
 

Bijlagen

Laatst bewerkt:
SNB het is een elegante alternatieve oplossing, maar het doet niets af aan het feit dat je met niet gekoppelde data niet meer dan 10 kolommen kunt hebben:

Code:
'gekoppelde data werkt wel
listbox.list = [a1:o1]
Code:
'dit loopt vast bij kolom K
listbox.columncount = 15
col  = 0
for each cell in [a1:o1]
listbox.list(col,0) = cell.value
col = col + 1
next cell

technisch gezien zouden beide hetzelfde moeten doen, maar bij de tweede is er een limiet van 10 ingesteld door microsoft. Dat er alternatieven zijn om dmv van koppeling eventueel toch meer kolommen te krijgen is natuurlijk mooi, maar deze harde limiet is wat verklaard waarom de eerste oplossing dus vastloopt.
 
Er is geen sprake van enige koppeling.
 
Microsoft definieert dat zo wel: gekoppelde data is data die al ergens als datasource (query result set, excel range, xml, draaitabel, etc.) beschikbaar is. Indien je naar zo'n source linked is er geen limiet in de listbox. Indien je de data zelf "verzint", mag je niet meer dan 10 kolommen vullen. Redelijk arbitrair, maar wel gedocumenteerd.
 
Omdat het geen gekoppelde data zijn, mislukt jouw voorbeeld listbox.list = [a1 : O1], listbox.list =Range("A1:O10").Value lukt daarentegen wel. Er is geen sprake van enige link, noch van updating/synchronisatie wanneer je van List gebruik maakt.
Zelf bedachte data zet je zonder beperkingen in de listbox bijv. met listbox1.list=split(replace(string(20,"|"),"|","aa|bb"),"|") of met een (meer) dimensionele array.
De beperking waarop je doelt geldt alleen voor de methode additem.
Daarom hoef je TS'ers niet af te schrikken met het signaal dat wat zij willen niet kan. Als ze de juiste methode hanteren kan wat ze willen wel.

Op de documentatie van MS (en de vertaling) valt nog wel het een en ander aan te merken.
 
Laatst bewerkt:
Snb,

Zou je dit in een excel-sheet kunnen zetten, want ik zie door de bomen het bos niet meer
met al die aanwijzigingen

bvd

Offthefield
 
Snb, Wampier,

Ik heb een voorbeeld gevonden, waar je de velden kan aangeven die je in de listbox wilt hebben,
alleen bij het Routenr komen alle routenummers, maar ik wil hier maar 1 route per reeks hebben,
hoe kan dit aangepast worden

bvd

Offthefield
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan