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

asenrene

Gebruiker
Lid geworden
15 jan 2017
Berichten
47
Beste lezers,

ik zou graag formule of een macro willen creëren waarbij ik door het invoegen van willekeurige letters een naam uit mijn namen lijst krijg te zien.
Als voorbeeld heb ik hieronder een paar namen

AlbertSteegeter
SieuwkeVerwoerd
BrewsterMichael
FioletDominique
KranendonkLotte
en nu wil ik op basis van bijvoorbeeld n en de k en de o in te typen dat excel de namen laat zien die deze tekens bevatten in dit geval dus

FioletDominique
KranendonkLotte

kan iemand mij hiermee helpen.

gr rene
 
Willekeurige letters gaat complex worden. Achtereenvolgende letters vergelijken gaat wel.
 
Dit is trouwens wel in office 365. Als je dat niet hebt kun je het niet testen
 

Bijlagen

Laatst bewerkt:
ja dit wist ik in ieder geval bedankt maar ben echt op zoek naar de namen die op willekeurige letters kunnen verschijnen.

bedankt voor de info.

gr rene
 
met een macro, desnoods hang je hem achter een change-event
 

Bijlagen

in A1 de eerste naam, daaronder de rest
in B1
Code:
=ALS.FOUT(SOM(VIND.SPEC(DEEL($C$1;RIJ(INDIRECT("1:"&LENGTE($C$1)));1);A1;1))<>0;ONWAAR)
, bevestigen met CTRL+SHIFT+ENTER (matrix-formule), dan doorvoeren naar beneden
in C1 je letters

in kolom B komt WAAR of ONWAAR te staan als de letters in de naam zitten ongeacht de volgorde van de letters.
 
helemaal goed zo kan het ook ik ga zelf dan wel een beetje aan de layout werken maar het werkt

bedankt voor de info


gr Rene
 
heb wel gemerkt dat als ik twee L bijvoorbeeld invul dat hij dan ook de namen weergeeft met 1 L is er ook nog iets waar mee ik dat kan veranderen dus alleen de namen weergeven die ook twee ll bevatten
gr rene
 
Dat is tegenstrijdig met de vraag die in #1 staat. Wat moet er gebeuren bij lall als invoer? Het is ook beter om een eigen voorbeeld te plaatsen met wat data, waar je wat invoert en waar je het resultaat verwacht. Je kan ook eens kijken naar het geavanceerde filter. Hierin kan je allerlei combinaties met verschillende voorwaarden opgeven.
 
beste VenA,

Ik heb ter info het programma erbij gedaan.
Ik zou graag willen dat er op basis van de in veld C2 willekeurige ingevulde letters er aan de rechterkant in veld d2 de mogelijke namen terecht komen.
dus als er twee dubbele letters instaan dan moet hij alleen de namen weergeven die dat ook hebben.
de keuze van de namen zijn dan te zoeken in veld A2 t/m A54
hopende dat dit voldoende info is.

gr Rene
 

Bijlagen

met VenA's geavanceerde filter
Kan geautomatiseerd worden...
 

Bijlagen

Laatst bewerkt:
Beste cow8,
Bedankt voor de hulp maar ik zal wel ontzettend dom zijn of het is nog te vroeg maar hoe werkt het met de letters invullen want heb van alles geprobeerd maar hij haalt bij mij niks op.
moet ik de letters in de kolom invullen of juist niet en alleen in het invulveld geel.
moet het tussen * * staan ik krijg in ieder geval geen info aan de rechterkant in kolom 1 (ophalen) te zien.

hartstikke bedankt nogmaals voor de genomen moeite



Groetjes rene
 
geadvanceerd filter
- je startgegevens staan in A1:A zoveel met in A1 je kolomhoofd "kolom1" (belangrijk)
- je zaken waarop je wenst te filteren staan naast elkaar vanaf F1 tot I2, maar naargelang je wensen zal je dat moeten uitbreiden of inkrimpen. In de 1e rij staat natuurlijk terug de kop "kolom1" en in de 2e rij hoe je wenst te filteren. Even voor je toegepast
- kolom F -> "*l*l*" = er staan 2 letters l in, hoe maakt niet uit door die wildcard "*"
- kolom G -> "*a*" = er staat een a in.
- volgende kolommen analoog
Bij deze filters geldt, als ze naast elkaar staan, versta je dat als een "EN", onder elkaar als een "OF"
Voor meer uitleg over die geavanceerde filter moet je maar eens googlen, die kunnen dat beter uitleggen dan ik.

En dan ben je vertrokken : gegevens>geavanceerd>aanvinken kopieren naar andere locatie, lijstbereik a1 tot a78, criteriumbereik f1 tot I2, kopieren naar K1 en op OK klikken.

Dus het is eventjes omslachtig, maar eens je het begrijpt, vrij eenvoudig aanpasbaar aan eigen noden.
 
In F1:F2.
Code:
[TABLE="width: 64"]
[TR]
[TD="class: xl63, width: 64"]Kolom1[/TD]
[/TR]
[TR]
[TD]*a**i**r*[/TD]
[/TR]
[/TABLE]
Criteriumbereik: F1:F2

Ik bekom resultaten die ik mis bij @cow18.

Met...
Code:
[TABLE="width: 64"]
[TR]
[TD="class: xl63, width: 64"]Kolom1[/TD]
[/TR]
[TR]
[TD]*a**r**i*[/TD]
[/TR]
[/TABLE]
..andere resultaten natuurlijk.
 
inderdaad

Beste Harry,
het klopt inderdaad dat ik allerlei namen mis.
als fde volgorde anders is mis je gewoon een hoop namen.
Uiteindelijk is het een soort programma voor een quiz waar ik op basis van letters de juiste naam naar voren ga krijgen.
Maar het werkt niet zo als ik het in gedachten had.
Ik krijg willekeurige letters aangeboden van de quizmaster en die wil ik dan invoeren zo dat alle namen te voorschijn komen die een mogelijke hit hebben.
bij nu een andere volgorde van invullen in kolom 1 gaat het inderdaad fout.
gr Rene
 
op #6 is er tot nog toe niet gereageerd, maar die kan aangepast worden in alle richtingen en geeft direkt het gewenste resultaat als je hem als change-event definieert.
In geval van quiz heb je vermoedelijk niet veel tijd, maar straks zal je vermoedelijk geen vba kunnen draaien ... .
 
Test dit eens.

Code:
Private Sub TextBox1_Change()
Dim sv, hs, i As Long, j 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) & ".*?"
           .Pattern = s0
          Next j
        For i = 1 To UBound(sv)
             If .test(sv(i, 1)) Then
               hs(n + 1, 1) = sv(i, 1)
                n = n + 1
            End If
        Next i
    End With
 End If
 Cells(1, 5).CurrentRegion.Offset(1).ClearContents
If n > 0 Then Cells(2, 5).Resize(n) = hs
End Sub
 

Bijlagen

in je eerste voorbeeld staad:
AlbertSteegeter
SieuwkeVerwoerd
BrewsterMichael
FioletDominique
KranendonkLotte
en nu wil ik op basis van bijvoorbeeld n en de k en de o in te typen dat excel de namen laat zien die deze tekens bevatten in dit geval dus

FioletDominique
KranendonkLotte
ik vraag me af waarom FioletDominique bij de oplossingen staat.
die bevat geen k
of telt bij jou de q als een k ?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan