• 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 naar treffers

Status
Niet open voor verdere reacties.

Excelvbas01

Gebruiker
Lid geworden
7 apr 2020
Berichten
114
Ik heb een excel blad met meerdere bladen. Blad1 is hoofdblad.
In tabblad 1 heb ik aantal namen met Id. In tabblad 4 heb ik dezelfde lijst maar nu met dubbele id nummers.
In userform heb ik Id textbox en listbox. wat ik wil is dat ik id van blad 1 invoer en dat gezocht word naar dezelfde id in Blad 4 en bij aantreffen tonen in listbox. Als het nummer niet voorkomt in Blad4 dan blijft listbox leeg.
Geprobeerd met een zoekdracht maar dat werkt niet zoals ik wil.
 

Bijlagen

  • test.xlsm
    15,2 KB · Weergaven: 23
Columncount op 3 zetten in de eigenschap van de listbox.

Bv.
Code:
Private Sub Id_Change()
Dim sv, sq, i As Long, j As Long, n As Long, s0 As String
sv = Sheets("blad4").Cells(1).CurrentRegion
sq = sv
ListBox1.Clear
 For i = 2 To UBound(sv)
  If CStr(sv(i, 1)) = Id.Value Then
    n = n + 1
     For j = 1 To 3
       sq(n, j) = sv(i, j)
     Next j
    s0 = s0 & n & ","
   End If
  Next i
 If Len(s0) > 0 Then ListBox1.List = Application.Index(sq, Application.Transpose(Split(s0, ",")), Array(1, 2, 3))
End Sub
 
Bedankt HSV,
Het werkt prima. Er is nog een ding waar ik niet uitkom.
Zodra ik ID nog een keer gebruik om bv in blad5 te zoeken dan geeft dat fout melding omdat je ID_change maar een keer kan gebruiken.
ik kan dit oplossen door door ID_1 toe te voegen maar dat is omslachtig.
Wat ik zou willen is dat ik maar een ID tekstbox kan gebruiken voor het zoeken op blad4 en blad5.
De resultaten van blad4 verschijnen in listbox1 en resultaten van blad5 in listbox2.

is dit mogelijk of moet ik gewoon spelen met ID.
 

Bijlagen

  • test.xlsm
    19,4 KB · Weergaven: 35
Beide bladen even bij langs.
Code:
Private Sub Id_Change()
Dim sv, sq, i As Long, j As Long, n As Long, x as long, s0 As String, sh as worksheet
ListBox1.Clear
ListBox2.Clear
For Each sh In Sheets(Array("blad4", "blad5"))
x = x + 1
s0 = ""
n = 0  
 sv = sh.Cells(1).CurrentRegion
 sq = sv
 For i = 2 To UBound(sv)
  If CStr(sv(i, 1)) = Id.Value Then
    n = n + 1
     For j = 1 To 3
       sq(n, j) = sv(i, j)
     Next j
    s0 = s0 & n & ","
   End If
  Next i
 If Len(s0) > 0 Then Me("ListBox" & x).List = Application.Index(sq, Application.Transpose(Split(s0, ",")), Array(1, 2, 3))
Next sh
End Sub
 
Geen idee wat je met de gegevens in de Listbox gaat doen, maar deze is zuiver.

Code:
Private Sub Id_Change()
Dim sv, sq, i As Long, j As Long, n As Long, x As Long, sh As Worksheet
ListBox1.Clear
ListBox2.Clear
For Each sh In Sheets(Array("blad4", "blad5"))
x = x + 1
n = 0
 sv = sh.Cells(1).CurrentRegion
 sq = sv
 For i = 2 To UBound(sv)
  If CStr(sv(i, 1)) = Id.Value Then
    n = n + 1
     For j = 1 To 3
       sq(n, j) = sv(i, j)
     Next j
   End If
  Next i
   If n > 1 Then
     Me("ListBox" & x).List = Application.Index(sq, Evaluate("row(1:" & n & ")"), Array(1, 2, 3))
   Else
     Me("ListBox" & x).Column = Application.Index(sq, Evaluate("row(1:" & n & ")"), Array(1, 2, 3))
   End If
Next sh
End Sub
 
Laatst bewerkt:
Ik ga deze gebruiken voor mijn database met klanten.
Code hier boven werk bij mijn database niet goed. geeft veel fouten. De eerste dat ik de code test waren de bladen leeg en minder kolommen.
Mijn datasheet bevat veel kolommen. ik heb geprobeerd de code aan te passen. Maar ik kom er niet uit.

Ik heb een ander code en deze heeft als nadeel dat wanneer een cel te veel tekens bevat een fout geeft.

Code:
private sub ID_Change()
Dim i as long
with listbox1
.list = sheets("BLAD1").CELLS(1).correntregion.value
for i = .listcoiunrt -1 to 1 sterp -1
if instr(Lcase(application.index(.list)), i +1, 0))), Lcase(Id.value)=0 then .removeitem 1
Next i 
end with
end sub
 
Tja, als je voorbeeld anders is dan in werkelijkheid krijg je fouten.

Onderstaand stukje van jouw code moet geen 'r' in natuurlijk.
Code:
sterp
 
En
Code:
.list = sheets("BLAD1").CELLS(1).correntregion.value

moet natuurlijk zijn
Code:
.list = sheets("BLAD1").CELLS(1).[COLOR="#FF0000"]CurrentRegion[/COLOR].value
 
Ach, en er staat nog een haak teveel in.
Nog een i en een r.
Maar ik laat het er eerst maar bij.
't Is eerst mooi geweest.
 
Allen bedankt voor het meedenken. Dit zijn typfouten. Het werk goed alleen wanneer een cel te veel tekst bevat dan geeft dit foutmelding.
(Typen komen niet met elkaar overeen)
 
De code hier boven is alleen neergezet om aan te geven om welke code het gaat.
De code zonder typefouten werk prima alleen bij cellen die te veel teskten bevat geeft deze fout melding.
Zie vb.
 

Bijlagen

  • test.xlsm
    17,8 KB · Weergaven: 35
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan