Code voor filteren combobox op userform tijdens typen

Status
Niet open voor verdere reacties.
Thanks Vena,

Het kon ook haast niet anders, maar had er niet aan gedacht het formulier verder uit te klappen.
 
Het werkt allemaal gelukkig in mijn eigen bestand op een detail na.

Zodra er in de combobox een letter wordt ingetikt die niet in de lijst voorkomt, krijg ik gelijk een foutmelding. Ik heb bijvoorbeeld geen registratienummers beginnend met een X. Als ik deze intik gaat het direct mis. Is daar een oplossing voor?
 
Wat dacht je van geen 'x' invoeren ?

Loop de code door met stop/F8 en kijk waar de fout optreedt. Probeer daar dan een oplossing voor te vinden.
 
Laatst bewerkt:
Ja dat is de simpelste manier om de fout te voorkomen.

als ik de code doorloop met F8 kom ik niet op de regel die de fout veroorzaakt. Hij loopt vast op

Code:
ComboBox1.List = Application.Index(sn, Application.Transpose(Split(c00)), Array(1, 2, 3))

On Error Resume next lost het probleem op!
 
Laatst bewerkt:
On Error Resume next onderdrukt het probleem. If len(c00) > 0 Then lost het probleem op.
 
Nee, dat niet echt. Als de lengte van c00 langer is dan 0, oftewel ingetikte waarde komt voor, dan gaat de code erachter aan het werk?
 
Wat komt er in de variabele c00 te staan ?
 
Ik denk dat ik iets in deze richting moet doen

Code:
 If  ????????   Then

  With Me
    .B2 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 1).Resize(, 1)
    .B3 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 2).Resize(, 1)
    .B4 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 3).Resize(, 1)
    .B5 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 4).Resize(, 1)
    .B6 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 5).Resize(, 1)
    .B7 = Blad1.ListObjects(1).DataBodyRange.Cells(Val(Combobox1.Tag) + 1, 1).Offset(, 6).Resize(, 1)
 End With
Else
  With Me
    .B2 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 1).Resize(, 1)
    .B3 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 2).Resize(, 1)
    .B4 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 3).Resize(, 1)
    .B5 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 4).Resize(, 1)
    .B6 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 5).Resize(, 1)
    .B7 = Blad1.ListObjects(1).DataBodyRange.Cells(Combobox1.ListIndex + 1, 1).Offset(, 6).Resize(, 1)
 End With

End If

Wie heeft raad?
 
Is de diskrepantie van je VBA-kennis en waar je mee bezig bent niet te groot ?
Heb je al eens een basisboek VBA bestudeerd ?
 
Dat mijn kennis niet voldoende is blijkt uit de hulpvragen die ik stel. Ik heb een mooie code van jou die echt geweldig is, maar weet simpelweg niet om daar op aan te sluiten.

Ik heb het filteren van de combobox maar even buiten beeld gelaten en in plaats daarvan wordt de combobox gesorteerd op nummer. Met de MatchEntry weer op complete kom ik een beetje in de buurt van wat het filter zou doen.

Evengoed allemaal bedankt voor de hulp. En snb, het zal nog wel even duren, maar die codes van jou ga ik een keer doorgronden :).

Gr.

Sjon
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan