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

namen aan de hand van willekeurige letters

Status
Niet open voor verdere reacties.
@ HSV
het werkt al stukken beter alleen het probleem is nu dat als ik de laatste letter van de naam als eerst in vul BV een Z dan doet hij alle letters die ik erna in toest niet de juiste naam zoeken.

in het kort : ik typ bijvoorbeeld dan de letters van de naam (mennoheijboer) als eerste letter de b in en daarna de m als tweede, dan komt zijn naam niet naar boven wel als ik eerst de m typ en de B daarna dan komt hij wel naar boven typ ik daarna weer de N in is hij weer weg.

@sylvester-ponte dit zijn fictieve namen niet uit het programma en dus niet geselecteerd zelf neergezet.

@cow18 ik kan hem gewoon draaien omdat de quiz via thuis wordt gedaan en de zoektocht naar letters via foto's gaat maar in verschillende volgorde de naam moet je dan zelf gaan ontcijferen. voor wat zes betreft komt het ook niet overheen met bovenstaande gegevens van hsv dus ook hier selecteerd hij maar een kant op


groetjes van rene en alvast nog bedankt voor het meedenken.
 
Test het eens zo.

Code:
Private Sub TextBox1_Change()
Dim sv, hs, sq, i As Long, j As Long, jj As Long, n As Long, s0 As String
sv = Cells(1).CurrentRegion
hs = sv
If Len(TextBox1) > 0 Then
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True
         For j = 1 To Len(TextBox1.Text)
           s0 = s0 & Mid(TextBox1.Text, j, 1) & ".*"
          Next j
          sq = Split(s0, ".*", -1)
        For i = 1 To UBound(sv)
          For jj = 0 To UBound(sq) - 1
                  s0 = Replace(s0, sq(LBound(sq)) & ".*", "", 1, 1) & sq(LBound(sq)) & ".*"
                  .Pattern = s0
              If .test(sv(i, 1)) Then
                  n = n + 1
                  hs(n, 1) = sv(i, 1)
              End If
          sq = Split(s0, ".*")
        Next jj
     Next i
    End With
 End If
 Cells(1, 5).CurrentRegion.Offset(1).ClearContents
If n > 0 Then Cells(2, 5).Resize(n) = hs
Columns(5).RemoveDuplicates 1
End Sub
 
Laatst bewerkt:
@ HSV Deze werkt al stukken beter nu doet hij pas bij de invoer van de 4 letter het geen wat ik hiervoor had beschreven.

Alvast Bedankt

Gr Rene
 
Geef het eens aan met welke namen die in het bestand staan.

Mennoheijboer staat er niet in.
 
Welke letters typ je?
 
Dan werkt het uitstekend dus.

e <> ë, en de W zit niet in MohamedFezaï.
 
Nee maar alls je naar de zawadidaniel neemt haalt hij de naam weg na invoeren van de i
 
oke lucindavader is een beter voorbeeld die ander komt door de (e) typ maar eerst de lci dan zie je haar naam naar boven komen maar als je lic typt niet meer.
 
Dat voorbeeld is beter.

Ik zal eens voor je kijken.
 
Of:

Code:
Private Sub TextBox1_Change()
   sn = Application.Transpose(Blad1.Cells(1).CurrentRegion.Columns(1))
   
   For j = 1 To Len(TextBox1)
     sn = Filter(sn, Mid(TextBox1, j, 1), , 1)
   Next
   
   Cells(1, 5).CurrentRegion.Offset(1).ClearContents
   If UBound(sn) > -1 And TextBox1 <> "" Then Cells(2, 5).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub
 
probeer deze eens, werkt niet via de textbox wel via C5
er worden meerder zaken gezocht, steeds gescheiden door een komma
1e deel voor de komma, alle letters die verplicht moeten voorkomen
2e deel = *ll* -> er moeten ergens 2 letters l na elkaar voorkomen
3e deel = *e?[eé]* -> er moet in de tekst een e vervolgens een willekeurig karakter en dan of een e of een é voorkomen
4e deel = *s -> laatste letter is een s
5e deel = r* -> 1e letter is een r
6e deel = ????w* -> 5e karakter is een w
op die manier zo je de meest gekke voorwaarden moeten kunnen vertalen.
Vanaf kolom F wordt telkens het resultaat neergezet van een gedeelte
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan