• 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 tabel met VBA

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
Goedenavond.

in mijn voorbeeldbestandje staat een form met een combobox, een textbox en een listbox.

in de combobox kan een schoolnaam gekozen worden.
in de textbox moet dan het ID nummer van de school komen te staan.

Ik heb een aantal codes geprobeerd, echter mijn kennis van VBA is te klein.

wie kan me hierbij helpen?



Als ik hiervoor de oplossing heb, dan denk ik dat ik mijn andere probleem zelf kan oplossen (zie hier mijn ander probleem op dit forum)



Bekijk bijlage proef zoeken in tabel.xlsb
 
Zo misschien?
Code:
Private Sub Cb1_Change()
    Tb1.Value = Cb1.Value
End Sub

Private Sub UserForm_Initialize()
    With LbScholen
      .ColumnHeads = False
      .List = [Tabel_Scholen].Value
      .ColumnCount = [Tabel_Scholen].CurrentRegion.Columns.Count
      .ColumnWidths = "20;40;160;80;25;40;160;0;0;0;0"
    End With
    
    With Cb1
      .List = LbScholen.List
      .ColumnHeads = False
      .ColumnCount = [Tabel_Scholen].CurrentRegion.Columns.Count
      .ColumnWidths = "0;0;160;0;0;0;0;0;0;0;0"
    End With
End Sub
 
Goedemorge Jack

Dit werkt idd, op deze wijze had ik nog niet gedacht.
Ik ga eens proberen mijn andere probleem nu op te lossen.

André
 
Jack...

Is het ook op te lossen zonder dat de Sub Initialize zoal ik die heb staan wordt aangepast?

Code:
Private Sub UserForm_Initialize()

    sn3 = Sheets("Tabel_Scholen").Cells(1).CurrentRegion
        For jj = 2 To UBound(sn3)
            If InStr(c04 & ",", "," & sn3(jj, 3) & ",") = 0 Then c04 = c04 & "," & sn3(jj, 3)
        Next
    Cb1.List = Split(Mid(c04, 3), ",")
    
    With LbScholen
    .ColumnHeads = False
    .List = [Tabel_Scholen].Value
    .ColumnCount = [Tabel_Scholen].CurrentRegion.Columns.Count
    .ColumnWidths = "20;40;160;80;25;40;160;0;0;0;0"
End With
End Sub


dit zo laten als het is dus....
 
Zo?
Code:
Private Sub Cb1_Change()
  Tb1.Value = [Tabel_Scholen].Cells(Cb1.ListIndex + 1, 1)
End Sub
 
Thanks, nu moet het me wel lukken om het andere probleem op te lossen denk ik.

Trouwens, is het je opgevallen dat wanneer je in de combobox de eerste school in de lijst kiest dat dan de eerste letter van de naam wegvalt?
School "De Opstap" wordt weergegeven als "e Opstap"

enig idee hoe dit kan?
 
Ik weet niet of dit uiteindelijk een handige aanpak is.
 

Bijlagen

  • __zoeken in tabel.xlsb
    19,3 KB · Weergaven: 47
Na wat puzzelen met cijfers heb ik nu alles werkend.

Code:
    sn = Sheets("Tabel_Scholen").Cells(1).CurrentRegion
        For jj= 2 To UBound(sn)
            If InStr(c01 & ",", "," & sn(j, [COLOR="#0000FF"]3[/COLOR]) & ",") = 0 Then c04 = c01 & "," & sn(j, [COLOR="#0000FF"]3[/COLOR])
        Next
    For i = 1 To 4
    Me("CbSchool" & i & "Hh").List = Split(Mid(c01, [COLOR="#FF0000"]2[/COLOR]), ",")
    Next i

De 3 geeft aan uit welke kolom de waardes zichtbaar wordt.
Maar wat doet de 2 nu eigenlijk precies?
Als ik de 2 verander in een 1 of 3 blijft het resultaat in de comboboxen hetzelfde, echter in de textboxen uit de code hieronder beschreven gaat het dan fout.

Code:
Private Sub CbSchool1Hh_Change()
    TbTest1.value = [Tabel_Scholen].Cells(CbSchool1Hh.ListIndex + 1, 1)
End Sub
    Private Sub CbSchool2Hh_Change()
TbTest2.value = [Tabel_Scholen].Cells(CbSchool2Hh.ListIndex + 1, 1)
End Sub
Private Sub CbSchool3Hh_Change()
    TbTest3.value = [Tabel_Scholen].Cells(CbSchool3Hh.ListIndex + 1, 1)
End Sub
Private Sub CbSchool4Hh_Change()
    TbTest4.value = [Tabel_Scholen].Cells(CbSchool4Hh.ListIndex + 1, 1)
End Sub
Wat SNB aangeeft nog niet geprobeerd, zal dat ook nog eens proberen. Alleen maar goed om meer mogelijkheden onder de knie te krijgen.
 
De 2 is het begin_getal van de tekst die je wilt.
MID is de functie DEEL in formulevorm.
=deel("tekst";2;lengte("tekst"))&"er" = ekster
 
Als ik het dus goed begrijp zal het eigenlijk meestal een 1 moeten zijn.
Er van uitgaande dat men gewoon te tekst wil hebben zoals in de bron vermeld staat.
 
:(
excuus....
Eerlijk gezegd vind ik dat ik al ver ben gekomen.
Ik ben sinds eind januari hiermee bezig en doe alles onderweg, wanneer ik ff tijd over heb, probeer ik alles uit te puzzelen.
Ik ben 5 dagen per week van huis, het weekend is voor ons gezin en niet voor de pc.
Dus als iemand het me duidelijker uit kan leggen, dan graag.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan