• 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 aan de hand van Combox

Status
Niet open voor verdere reacties.

Excel01

Gebruiker
Lid geworden
13 nov 2011
Berichten
129
Ik wil aan de hand van de inhoud van Combox zoeken in de sheet.

In de Combox selecteer ik kolom waar ik in kan zoeken.
Naam, voornaam, adres enz,,,

Weet iemand hoe ik deze kan doen.
Bekijk bijlage 311201
zie bestandje.
 
Bedoel je dit?
Code:
cbo.List = Application.Transpose(Sheets("Klanten").ListObjects(1).HeaderRowRange.Value)
 
zo ongeveer.
Je krijgt nu alle kolommen te zien in de combox.
Ik wil in een bepaalde kolommen gezocht wordt en die kolommen wil ik in Combox aangeven.
Bv, Naam, voornaam en postcode.

bedankt voor je snelle reactie.
 
Ik begrijp helaas niet veel van de vraag, vooral omdat er geen voornamen in staan.
Misschien bedoel je dit.

Code:
Private Sub Txt_Change()
Dim sv
 If Len(Txt) > 0 And cbo.ListIndex > -1 Then
     sv = Split(Join(Application.Transpose(Application.Index(Listbox.List, 0, cbo.ListIndex + 2)), "|"), "|")
     For i = 0 To UBound(sv)
       If InStr(sv(i), Txt.Value) Then
          Listbox.ListIndex = i
          Exit For
        Else
         Listbox.ListIndex = -1
       End If
     Next i
  Else
  Listbox.ListIndex = -1
 End If
End Sub
 
Beste,

Ik heb wat zitten stoeien met de code van HSV door deze regel in de procedure "userform_initialize" aan te passen met de bedoeling in de 5 kolommen te kunnen zoeken maar helaas functioneert de tool niet meer :
Code:
cbo.List = Split("[COLOR="#FF0000"]ID[/COLOR] Naam adres postcode [COLOR="#FF0000"]plaats[/COLOR]")
 
Laatst bewerkt:
ik wordt er ook niet veel wijzer van of bedoel je zo?

Code:
Private Sub cbo_Change()
  With Sheets("Klanten").ListObjects(1)
    Listbox.List = .HeaderRowRange.Find(cbo.Value).Offset(1).Resize(.ListRows.Count).Value
  End With
End Sub

Private Sub UserForm_Initialize()
    cbo.List = Application.Transpose(Sheets("Klanten").ListObjects(1).HeaderRowRange.Value)
End Sub
 
Laatst bewerkt:
bedankt allemaal voor de suggesties.
Wat Harry heeft geschreven is de juiste weg.
Ik hiermee aan de slag.

grt.
 
Ik heb vba van HSV geprobeerd, maar ik kreeg foutmelding. Ik kreeg hem dus niet aan de praat.
Hier onder is het vbatje die ik nu gebruik. Ik wil deze combineren met combox.
Ik heb van alles geprobeerd maar helaas niet gelukt.

Ik wil dus via cobobox bepalen in welke kolom gezocht moet worden.
In combox heb ik namen van de kolommen opgenomen waar in gezocht moet worden.

Code:
Private Sub Txt_Change()
    sFind = Txt.Text
    If Len(sFind) = 0 Then
        ListBox1.ListIndex = -1
        ListBox1.TopIndex = 0
    Else
        For i = 0 To ListBox1.ListCount - 1
            If InStr(UCase(ListBox1.List(i, 1)), UCase(sFind)) > 0 Then  'nu wordt er in kolom 1 gezocht
'hier zou combox moeten komen .....
                      ListBox1.TopIndex = i
                ListBox1.ListIndex = i
                Exit For
            End If
        Next i
    End If
  End Sub
 
Dan zie #4.
 
Ik heb die code geprobeerd toe te passen in mijn bestand maar deze geeft foutmelding.
Naam en voornaam werkt wel maar postcode zoeken werk niet.
Als ik in die vba wijzig dan dan krijg ik foutmelding.

Bekijk bijlage 312207
 
Je moet 'adres' opnemen in je combobox, de listindex bepaalt de volgorde van de kolommen.

Code:
cbo.List = Split("Naam voornaam [COLOR=#0000ff]adres[/COLOR] postcode")
 
HSV bedankt.
Is het mogelijk om alleen kolommen in combox op te nemen waar gezocht moet worden.
Bv. Naam (kolom B) en postcode (kolom E).
 
Voor de kolommen B, C en E. (2,3,5)
Code:
Private Sub Txt_Change()
Dim sv, Naam, Postcode
 If Len(Txt) > 0 And cbo.ListIndex > -1 Then
[COLOR=#0000ff]  cbo.Tag = Choose(cbo.ListIndex + 1, 2, 3, 5)[/COLOR]
     sv = Split(Join(Application.Transpose(Application.Index(Listbox.List, 0, [COLOR=#0000ff]cbo.Tag[/COLOR])), "|"), "|")
     For i = 0 To UBound(sv)
       If InStr(sv(i), Txt.Value) Then
          Listbox.ListIndex = i
          Exit For
        Else
         Listbox.ListIndex = -1
       End If
     Next i
  Else
  Listbox.ListIndex = -1
 End If
End Sub
 
Ik weet het wel!
Code:
cbo.Tag = Choose(cbo.ListIndex + 2, 5)
 
Bekijk die van mij nog eens goed, en vooral 2,3,5 en laat de +1 ongemoeid.
 
bericht verwijderd. Is niet meer van toepassing.
 
Laatst bewerkt:
Niks aannemen,..... gewoon verder zoeken lijkt mij het beste.

Succes met Google.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan