• 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.

zoekfunctie in combobox

Status
Niet open voor verdere reacties.

RudolfVos

Gebruiker
Lid geworden
29 dec 2019
Berichten
22
Goedemiddag helden van Excel,

Zie onderstaande VBA code;

Werkt perfect, alleen ik mis 1 ding.
Zodra ik in de combobox begin te typen vind hij alles met die specifieke beginletters.

Wat ik graag zou willen is het volgende;

Als de keuzelijst bestaat uit de namen:
- Jan klaassen
- Kees Jansma
- Jarrald de Vries
- Piet Haas

Als ik dan "Jan" invoer in de dropbox, dan zou ik ook graag "Kees Jansma" willen zien verschijnen in plaats van alleen maar "Jan Klaassen"

Weet iemand een manier om dit te bereiken?
En moet ik deze VBA code in elk van de 200 tabbladen "plakken" of is daar ook een handigheidje voor?

Alvast bedankt voor het meedenken!
VBA code is als volgt;

'==========================
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
ScreenUpdating = False

Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
'clear and hide the combo box
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
'if the cell contains a data validation list
Cancel = True
Application.EnableEvents = False
'get the data validation formula
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
'show the combobox with the list
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = str
.LinkedCell = Target.Address
End With
cboTemp.Activate
'open the drop down list automatically
Me.TempCombo.DropDown

End If

errHandler:
Application.EnableEvents = True
ScreenUpdating = True
Exit Sub

End Sub
 
Dat dacht ik al, weet je toevallig ook wat ik ben vergeten precies?
 
Plaats je code tussen de code tags, dit leest een stuk makkelijker.
Dit kan met de # knop.
 
Goedemiddag nogmaals,

heb inmiddels wat vertrouwelijke gegevens verwijderd.
Bijgaand het voorbeeldbestand.

Hoop dat iemand er iets mee kan.
bedankt.
 

Bijlagen

Handig voor de helpers zo'n beveiligd werkblad.
 
Zet 'm in de ThisWorkbook sectie als:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Daar kan je dan ook controleren op welk blad (Sh) de dubbelklik werd gedaan en heb je de code maar 1x in je document staan.
 
Laatst bewerkt:
Edmoor,


dank voor je suggestie.
Als ik het verander dan komt de dropdown niet meer tevoorschijn als ik er op dubbelklik.
 
"Als ik het verander" zegt me uiteraard niks omdat ik geen idee heb wat je hebt veranderd.
Probeer dit dit simpele voorbeeldje maar eens zodat je kan zien wat ik bedoel:
Bekijk bijlage Rudolf.xlsm

Dubbelklik op een willekeurig blad.
 
Ik zag net wat je bedoelde.
Wijzig dan:
Me.TempCombo.DropDown

In:
Sheets(Sh.Name).TempCombo.DropDown
 
Edmoor,

bijgaand het bestand, zou je willen kijken of ik de dingen op de goede plek heb gezet?
Ik krijg nog niet het gewenste resultaat.

In de workbook sectie zetten, lijkt niet te werken op de tabbladen.
 

Bijlagen

Je moet uiteraard wel de heading van de Sub aanpassen.
Bij deze:
Bekijk bijlage zoeken in combobox.xlsm

Voor de test kan je blad 01 gebruiken.
Op de andere bladen moet je wel eerst de ComboBox aanmaken.
 
Hey, dat werkt inderdaad!
super, scheelt alweer een boel tijd! tnx!

Zijn er nog suggesties over de mijn vraag voor wat betreft het mogelijk maken van "zoeken" in de combobox?
 
Ik zie Kees Jansma helmaal niet voorbijomen.

Maak van de combobox een dropdownlist: style=2

Met gesorteerde gegevens is het eenvoudig 'zoeken'.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan