Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Ik heb een excel gemaakt waarin in 1 tabblad een lijst met categorieën staat (dat worden er straks 350).

In andere tabblad heb ik een vervolgkeuzelijst gemaakt. straks komen er 4 van die vervolgkeuzelijste naast elkaar omdat producten aan meerdere categorieën gekoppeld kunnen worden.

 

Bedoeling is dat iemand straks voor 25.000 regels de bij dat product horende categorie gaat selecteren.

Op deze manier wil ik typefouten en invoeren van niet bestaande categorieën voorkomen.

 

enkel wordt op deze manier met 350 categorieën dit erg lang zoeken naar juiste categorie.

Is het dus ook mogelijk om in te stellen dat je kan zoeken?

dus dat als je begint met typen van tafel dat je enkel nog de categorieën ziet waarin woord tafel voorkomt, en als je slaapkamer typt (of deel daarvan) dat je dus enkel de categorieën ziet waarin dat voorkomt?

 

en als 2de vraag: achter categorie staat een nummer, zou mooi zijn als dat iemand een categorie selecteert dat dan daarachter direct ook het categorienummer ingevuld wordt vanuit andere tabblad (die heb ik namelijk straks mede nodig voor importeren)

 

Is dit dus mogelijk en zoja hoe?

categorie selectie test.xlsx

  • 2 weken later...
Geplaatst:

112 keer bekeken en geen gegadigden, dan zal ik de debatten maar openen.

 

Om te filteren terwijl je typt moet je gebruik maken van een Combobox maar 25000 (of meer) comboboxen op een werkblad lijkt me overkill.

 

Dus met je gegevensvalidatie lijkt dit me het beste alternatief. Er is wel een stukje VBA voor nodig dus als dit een bezwaar is zit j in de problemen.

 

Typ het woord (of een deel) dat je zoekt in een cel in kolom B en druk op Enter (of Tab). je Validatielijst is nu gefilterd.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target = vbNullString Then Exit Sub
        sn = Sheet2.Cells(1).CurrentRegion
        With CreateObject("Scripting.Dictionary")
            For j = 1 To UBound(sn)
                If sn(j, 1) Like "*" & Target.Value & "*" Then .Add sn(j, 1), ""
            Next
            Target.Validation.Delete
            Target.Validation.Add xlValidateList, , , Join(.keys, ",")
            Target.Validation.ShowError = False
        End With
    End If
End Sub

 

categorie selectie test.xlsm

Geplaatst:

Je hebt het forum nu al 2X bezocht nadat ik gepost heb.

 

Is het dan echt zoveel gevraagd om even een berichtje, wat dan ook, achter te laten. :(

 

Blijkbaar nog veel te leren over forumetiquette.

 

Mijn interesse in jouw vraag is nu wel helemaal verdwenen. Suc6 nog met je project

Geplaatst:
9 uren geleden, bakerman zei:

Je hebt het forum nu al 2X bezocht nadat ik gepost heb.

 

Is het dan echt zoveel gevraagd om even een berichtje, wat dan ook, achter te laten. :(

 

Blijkbaar nog veel te leren over forumetiquette.

 

Mijn interesse in jouw vraag is nu wel helemaal verdwenen. Suc6 nog met je project

ik kom op terug, vanuit huis gekeken en gezien, maar daar niet zo makkelijk je bestand te bekijken/testen. en beetje erg druk maar zal zeker reageren.

  • 3 weken later...
Geplaatst:

mijn excuses, inderdaad erg druk  met werk en prive en aangezien basis file van waaruit ik moest werken vertraging had is het me helemaal ontschoten dat ik nog moest reageren tot ik net berichtje weer zag. Nogmaals mijn excuses, was wat netter geweest eerder te reageren.

 

die laatste (Test 2) ziet er goed uit, popup en zoeken werkt perfect.

Probeer nu te ontdekken hoe ik dit kan overzetten naar mijn echte import file

Geplaatst:

Ik heb al gevonden hoe ik de programma code kan inzien, beste deze zo op te slaan dus en data uit andere systeem hierin over te nemen en celbereiken aan te passen aan hoeveelheid data die ik in systeem plak denk ik.

 

Geplaatst:
Op 25/4/2022 om 17:22, emielDS zei:

Als je dan toch een reactie geeft hier is nog een andere oplossing

categorie selectie test (2).xlsm 27 kB · 10 downloads

lijkt goed te werken deze. Probeer nog wat dingen te veranderen maar kan niet vinden hoe.

als ik in Blad1 op een veld in kolom B klik krijg ik popup.

als ik dan in zoekvak een categorienaam intyp krijg ik in veld gevonden de resultaten met categorienaam links en bijbehorende waarde uit kolom B van tabblad categorieën . tot zover helemaal mooi.

is er echter ook een manier om de breedte van de 2 kolommen die in gevonden veld komen te staan te veranderen? dus b.v. linker kolom daarin breder te maken?

 

verder viel me nog iets op.

Op het moment dat ik zo een categorie selecteer wordt deze keurig neergezet in Tabblad1 maar komt er ook een regel te staan in tabblad categorieën in kolom K en L en kan niet vinden waar dat vandaan komt en hoe ik dat kan verwijderen. Of is dat met een specifieke reden?

 

Verder kan ik nu de categorie selecteren in kolom B. Ik wil zo eenzelfde veld toevoegen in kolom D en F.

daarvoor zie ik de volgende code:

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [b2:b500]) Is Nothing Then
    If Target.Count = 1 Then UserForm1.Show
 End If
End Sub

heb al wat dingen geprobeerd  om [d2:d500] en [f2:f500] toe te voegen maar krijg dan steeds foutmeldingen.

kan wel [b2:f500] van maken maar dan komt die categorie selectie dus ook in kolom C waar juist alweer resultaten worden neergezet.

Nu kan ik die kolom C en E wel onzichtbaar maken maar is niet de meest nette oplossing.

 

verder voor nu nog een laatste vraag:

is het ook mogelijk dat als ik dus in kolom B (of straks D of F) klik en de popup komt naar boven dat dan direct de cursor in zoekveld staat en dus gelijk kan starten met typen?

Met vriendelijke groet

 

Daniel

Geplaatst:

Bedoel je dan zoiets?  de breedte van de kolommen in de listbox is aan te passen in de eigenschappen ven de listbox

de gegevens op tabblad categorien in kolommen K en L dienen voor de gefilterde gegevens in de listbox, Is ook op een manier op te lossen maar zoals het nu is het gemakkelijkst en eenvoudigst.

categorie selectie test (2).xlsm

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.