• 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 in 2 kolomen van een listbox

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

Ik ben weer een stuk verder gekomen met de listbox en het zoeken.
Deze heb ik goed kunnen verwerken in mijn sheet.
Ik heb hier onder ander artikelen in staan met omschrijving 1 en in de andere kolom omschrijving 2
Nu wil ik de ene keer zoeken in omschrijving 1 en de ander keer in omschrijving 2.

mijn gedacht was nog een textbox 2 erbij zetten maar dan kom ik in de knoei met de code.

Wie kan mij hierbij helpen.
In mijn bijlage zit een voorbeeld bestand maar dan met adressen maar het principe blijft het zelfde .

Groet HWV
 

Bijlagen

Bedankt voor je reactie.
Ivm dat het in een bestand van ruim 8000 regels ga zoeken is de listbox een mooie tool om de regels onder elkaar te krijgen waar de zoekopdracht aan voldoet.
Ik heb de combobox er wel naast maar kreeg de vraag dat er moeilijk in te zoeken was en dat hij niet een deel uit de regel kon vinden.
Zoals je ziet in het voorbeeld bestand is dat je een mooi overzicht krijg van je zoek opdracht.
En nu dan opzoek naar de oplossing voor het zoeken in een tweede kolom in de listbox.

Ik weet niet of het mogelijk is maar als het lukt wil ik het nog uitbreiden zodat ik kan zoeken in elke kolom van de listbox maar dan niet met de knop maar zodra er op de enter knop gedrukt wordt

groet HWV
 
Als ik het goed begrijp is dit dus niet mogelijk om met enkel textboxen te gebruiken om te zoeken in een listbox.
Misschien zit ik inderdaad verkeerd te denken en moet ik met een combobox werken. Zal ik me in moeten verdiepen.

Enig idee hoe ik dan doormiddel van de de combobox de kolommen variabel kan maken

Groet HWV
 
Enig idee hoe ik dan doormiddel van de de combobox de kolommen variabel kan maken

Hallo,

Dat wil met deze code wel lukken. :p

Code:
  ComboBox1.RowSource = "Blad1" & "!B1:" & [Blad1!B65536].End(xlUp).Address
Met vr gr
Jack
 
Laatst bewerkt:
Jack bedankt voor jou reactie.

Ik heb zitten puzzelen maar kom er niet uit waar ik deze moet plaatsen om hem werkend te krijgen.

Kan jij misschien aangeven waar ik het moet zetten, of dat jij het in een voorbeeld bestand kan zetten voor mij.

Alvast bedankt voor je hulp

groet HWV
 
Hallo,

Zet deze code in je UserForm_Initialize module
Code:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Blad1" & "!B1:" & [Blad1!B65536].End(xlUp).Address
End sub
Misschien dat je nog wat aan deze topic hebt, en dan bedoel ik de laatste quote van snb!

Met vr gr,
Jack
 
Laatst bewerkt:
Wat ik wil bereiken is het volgende:

Zoeken per kolom, niet verbonden aan elkaar.
Als ik een zoekopdracht geef voor omschrijving1 dan zoek hij in die kolom en geef de uitkomst in de listbox. Dit geld ook voor omschrijving2 enz

Als ik in de eerste kolom zoek naar Henk vind ik er twee
Slager Henk
Bakker Henk

Als ik zoek naar Slager vind ik er drie
Slager Henk
Slager Jan
Slager Piet

Ik wil boven de listbox de textboxen zetten, boven de desbetreffende kolom
(Zie bijlage)


Nog mooier zou zijn zonder de knoppen er boven , en dat het met enter gezocht kan worden

Groet HWV
 

Bijlagen

Bedankt voor je aanvulling Jack.

Ik heb het tegepast, maar ik krijg nu een validatie lijst van kolom B dus alleen de tekst zoeknaam1.
Ik heb de suggestie van SNB bekeken en al eerder gezien en geprobeerd om te bouwen maar dat is me niet gelukt .

Ik hoop dat je ook naar mijn laatste bijlage heb gekeken, om een idee te krijgen hoe ik het graag zou willen voor elkaar te krijgen.

Groet HWV
 
Laatst bewerkt:
Ben verder gegaan om te kijken of ik het voor elkaar krijg.
Ik heb het voorelkaar gekregen de eerste twee dus klantnr en klantnaam.
Erg omslachtig maar het werkt wel.
Nu wil ik dus de rest ook gaan doen maar misschien kan het wat simpeler.
Tevens zit ik met het probleem dat ik elke keer de zelfde opbouw in de listbox wil hebben.
Maar als ik dit nu verder wil doen moet ik terug dus als ik zoek in kolom C van mijn werkmap dan moet ik eigenlijk kolom A tonen van mijn werkmap in de eerste kolom van de listbox.
dat gaat me nog niet echt lukken, nu heb ik dit gedaan met een hulp kolom te zetten in kolom O. en daar haal ik dan de klantnr vandaan.

ik hoop dat iemand hier ondersteuening in kan bieden.

groet HWV
 
Laatst bewerkt:
Beste,

Het is mij gelukt om te gaan zoeken in een listbox maar dan op alle kolommen in de listbox.
Het enige wat ik heb moeten doen is, bijna het gehele bestand er achter te zetten om een juiste validatie te krijgen (hulp kolommen).
Om dat het gaat om best wel veel regels rond de 8000 zou ik graag een mooiere manier hebben gehad.
Maar ben erg blij dat het nu gelukt is en dat het werkt.

Hoe werkt het:
Ga boven de kolom staan en begin je zoekvraag te tikken, je zal gelijk resultaat zien per kolom

Wat ik nog wel hoop is dat iemand een betere idee heeft zodat ik geen hulp kolommen hoef te gebruiken.

Groet HWV
 

Bijlagen

Laatst bewerkt:
een aanpassing gedaan in de code

Snap je wat het volgende stukje doet?

Bedankt voor je reactie.

Ik probeer het te begrijpen, maar zoals je aan mij code ziet doe ik dit niet.
Kan er om heen draaien dat ik dat wel doet maar is niet zo :-( al zou ik het wel graag willen.

Lang verhaal waarom, maar wil je dat besparen.

Ik heb verschillende dingen geprobeerd om het te snappen maar heb de achtergrond niet.
Probeer als hobby wat voor elkaar te krijgen, en geniet ervan als het lukt, ik geniet er nog meer van als mensen mij hierbij helpen :thumb:

Ik wil dit maken voor mijn collega`s in de buitendienst, vind het gewoon leuk om steeds meer bij te leren van excel en VBA

toch weer mee bezig geweest, en een klein aanpassing gedaan na de opmerking van Red Evil (een zetje wat ik nodig had.)
Code:
Sub Locate1(Name As String, Data As Range)

    Dim rngFind1 As Range
    Dim strFirstFind1 As String
   
   Me.ListBox1.ColumnWidths = "35;1;120;120;45;120;45;35"

    With Data
        Set rngFind1 = .Find(Name, LookIn:=xlValues, LookAt:=xlPart)
        If Not rngFind1 Is Nothing Then
            strFirstFind1 = rngFind1.Address
            Do
                If rngFind1.Row > 1 Then
                    ListBox1.AddItem rngFind1.Value
                    ListBox1.List(ListBox1.ListCount - 1, 0) = rngFind1.Columns(-1) 'debiteurennummer
                    ListBox1.List(ListBox1.ListCount - 1, 2) = rngFind1.Columns(1) 'Klantnaam
                    ListBox1.List(ListBox1.ListCount - 1, 3) = rngFind1.Columns(4) 'Straatnaam
                    ListBox1.List(ListBox1.ListCount - 1, 4) = rngFind1.Columns(5) 'Postcode
                    ListBox1.List(ListBox1.ListCount - 1, 5) = rngFind1.Columns(6) 'Plaats
                    ListBox1.List(ListBox1.ListCount - 1, 6) = rngFind1.Columns(8) 'code accountmanager
                    ListBox1.List(ListBox1.ListCount - 1, 7) = rngFind1.Columns(9) 'Telefoonnummer
                    
                End If
                Set rngFind1 = .FindNext(rngFind1)
            Loop While Not rngFind1 Is Nothing And rngFind1.Address <> strFirstFind1
        End If
    End With
    
End Sub

Nu geen hulp kolomen meer nodig , dat scheelt al veel werk.
Nu nog in code gieten, maar dat gaat mij even een pet te boven om er voor te zorgen dat al de code onder één noemer "Locate" komen te staan om per textbox een zoek opdracht te geven ?

Groet HWV
 
Laatst bewerkt:
dat is stampen, maar nog niet begrijpen

Code:
Sub Locate(Name As String, Data As Range)

    Dim rngFind As Range
    Dim strFirstFind As String
   
   Me.ListBox1.ColumnWidths = "35;1;120;120;45;120;45;35"

    With Data
        Set rngFind = .Find(Name, LookIn:=xlValues, LookAt:=xlPart)
        If Not rngFind Is Nothing Then
            strFirstFind = rngFind.Address
            Do
                If rngFind.Row > 1 Then
                    ListBox1.AddItem rngFind.Value
                    ListBox1.List(ListBox1.ListCount - 1, 0) = rngFind.Cells(1, 1) 'debnummer
                    ListBox1.List(ListBox1.ListCount - 1, 2) = rngFind.Cells(1, 3) 'Klantnaam
                    ListBox1.List(ListBox1.ListCount - 1, 3) = rngFind.Cells(1, 6) 'Straatnaam
                    ListBox1.List(ListBox1.ListCount - 1, 4) = rngFind.Cells(1, 7) 'Postcode
                    ListBox1.List(ListBox1.ListCount - 1, 5) = rngFind.Cells(1, 8) 'Plaats
                    ListBox1.List(ListBox1.ListCount - 1, 6) = rngFind.Cells(1, 10) 'code accountmanger
                    ListBox1.List(ListBox1.ListCount - 1, 7) = rngFind.Cells(1, 11) 'Telefoonnummer
                End If
                Set rngFind = .FindNext(rngFind)
            Loop While Not rngFind Is Nothing And rngFind.Address <> strFirstFind
        End If
    End With
    
End Sub

Moeilijk verder als dit kom ik niet :--(
Cells(1,1).Cells(1,2)

Betekend dit dat hij dan in kolom 1 dan twee waarde`s moet geven want nu geef hij de laatste waarde in dit geval dus de waarde van
Code:
.Cells(1,2)

Sorry ga het nog niet echt begrijpen

Groet HWV
 
Code:
MsgBox (rngFind1.Address)	$A$3
	
MsgBox (rngFind1.Cells(1, 2).Address)	$B$3
MsgBox (rngFind.Cells(1, 3).Address)	$C$4
	
MsgBox (rngFind1.Offset(, 1).Address)	$B$3
MsgBox (rngFind1.Offset(, 2).Address)	$C$4

OK, de uitkomsten vertellen zeker iets over de code.

Code:
(rngFind1.Cells(1, 2).Address)

De 2 staat voor kolom B
waar staat de 1 dan voor ?

Code:
MsgBox (rngFind1.Offset(, 1).Address)

Mooie tool zo om te kijken wat de code doet :-)

Maar hoe kan ik dit dan gebruiken zodat ik maar één locate nodig heb ?

Groet HWV

ps bedankt voor je uitleg, en je geduld :thumb:
 
Ik doe een gooi, dat deze absoluut is $

Zou het anders niet weten

Groet HWV
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan