• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Zoeken meerdere items via tekstbox

kenneth123

Gebruiker
Lid geworden
27 apr 2012
Berichten
87
Ik heb een excel inventaris lijst in tabblad "Inventaris"
In tabblad "Home" heb ik een textbox gemaakt die zou moeten zoeken in kolom A van tabblad "Inventaris" en deze filteren.
Als ik 1 nummer opzoek werkt dit, 2 ook nog maar als ik meerdere nummers opzoek werkt dit niet meer.
Hoe kan ik het toevoegen in mijn VBA code om meerdere items te zoeken en weer te geven via autofilter?
Heb al vanalles getest maar het wil niet lukken.

VBA die ik nu gebruik in bijlage.
 

Bijlagen

Je hebt meer kans om goede antwoorden te krijgen als je je Excel document plaatst in plaats van alleen een tekst bestand met je code.
 
Er staat veel vertrouwelijke info in, dan moet ik eerst veel aanpassingen doen.
Als ik hier op deze manier niet uitkom zal ik dat wel doen, want deze functie zou echt een grote meerwaarde zijn voor het bestand en me zeer veel tijd besparen.
 
Gewoon een voorbeeld met een gevulde kolom A en je Textbox1 lijkt me voldoende.
 
Het laatste stukje van de code.
Code:
For i = 0 To UBound(zoektermen)
        zoektermen(i) = Trim(zoektermen(i)) ' Verwijder onnodige spaties
        If zoektermen(i) <> "" Then
            criteria(i) = zoektermen(i)
        End If
    Next i
    
    ' Pas AutoFilter toe met meerdere zoektermen (OR-logica)
    wsInventaris.Range("A1:A" & lastRow).AutoFilter 1, criteria, 7
 
A2 t/m A41 zijn getallen voorafgegaan door een ', dus die worden geïnterpreteerd als tekst.
En cel A42 niet, en dat is juist de derde waarde die je wilt vinden!

Zet daar ' voor en gebruik de code van HSV.
Als je met wildcards wilt filteren kun je slechts 2 filterwaarden gebruiken.
 
Laatst bewerkt:
Tekst is gelijk aan x of gelijk aan y met een Array(); Criteria1 = Array(); operator 7 (xlFilterValues)

Code:
Sheet1.ListObjects(1).Range.AutoFilter 2, Array("Pork", "Quiche"), 7
 
A2 t/m A41 zijn getallen voorafgegaan door een ', dus die worden geïnterpreteerd als tekst.
En cel A42 niet, en dat is juist de derde waarde die je wilt vinden!

Zet daar ' voor en gebruik de code van HSV.
Totale onzin.
 
Dat klopt wel ja, maar is niet nodig om die te plaatsen.
Met of zonder de apostrof werkt #6 ook.
 
Active_X controls zijn een beetje uit de mode wegens "gevaarlijk", die moet je vermijden.
Dus heb ik even A1 gebruikt voor je invoer, waarbij je dan een spatie of een alt+enter gebruikt om de verschillende zoekstrings te scheiden.
Met de knop worden die netjes in de tabel TBL_Gezocht gezet en die wordt gebruikt voor de formules in de kolom "filter". Nu hoef je enkel te filteren in de "filter"-kolom op waarden >0
 

Bijlagen

Jammer dat TS nog niets heeft laten weten.
Zelf ook nog maar een duit in het zakje doen.
Het is dan wel niet met een macro en/of textbox maar met een tabellen en power query.
 

Bijlagen

Terug
Bovenaan Onderaan