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

Filter op 3, 4 of meerdere woorden

Status
Niet open voor verdere reacties.

hmwul

Gebruiker
Lid geworden
15 dec 2012
Berichten
462
Dit is iets waar ik regelmatig tegenaan loop: filteren op meer dan 2 woorden.
Tot 2 woorden, geen probleem (Filter > Text Filter > Custom Filter), maar op meerdere woorden....

Zoiets als:
Contains: woord1 OR woord2 OR woord3 OR woord4

En dát binnen een bestand dat al op een andere kolom al een filter is.

Ik verzin maar even wat:
Kolom 'Categorie' = filter op kolom 'Behandelingen'
Kolom 'Informatie' = filter op contains: woord1, woord2, enz.

Zonder draaitabellen (ben ik niet in thuis, ik weet niet of het werkt met formules enzo) en zonder ergens 'hulpvelden'.
De 'Filter' functie die ik op Internet tegenkom gaat uit van hulpvelden ergens, filteren op basis van een range elders op de spreadsheet.
Reuze 'handig' wanneer de wanneer je eerst al een filter ingeschakeld heb en de range ergens in kolom CC staat


Eigenlijk zoiets als het onderstaande.


Ik heb gezocht of er op Internet al een kant en klare macro oplossing bestond, die de gebruiker vraagt:
1. om de kolom selecteren
2. invoerscherm voor woorden en booleans

Eigenlijk ben ik slechts 1 tool tegengekomen die zoiets heeft met de naam "Super Filter".

Maja... om nou voor 1 onderdeel de Add in aan te schaffen...
 

Bijlagen

  • SnagIt-30012022 072509.png
    SnagIt-30012022 072509.png
    4,5 KB · Weergaven: 24
Je vraag is specifiek?
En graag een voorbeeldbestandje erbij.
 
Bijgaand Excel bestandje. Het stelt niets voor. Heb maar even snel iets in elkaar gefietst.

Er is een filter op plaats Zwolle

Nu de regels filteren die matchen met:
Avinash OF
Greta OF
Banks OF
Cooper

Ik kan dus alleen maar de 1e 2 filteren, maar er is geen optie voor meerdere namen.

Een beetje ingewikkeld uit te leggen, maar ik hoop dat het duidelijk is...?

Dus in kolom 2 een filter
en in kolom 1 filteren op 3 of meer namen (in dit geval), of die, of die, etc.
 

Bijlagen

Je kunt de namen toch selecteren uit het dropdown menu?
 
Ai!...
Inderdaad, stom van mij.

Da's het nadeel van voorbeeldbestandjes. Ik ga geen privacy gegevens op Internet zetten, dus moest ik snel iets samenstellen.
Dit is duidelijk een verkeerd voorbeeld, sorry. Vergeet het.

Nou ja, tenminste... Stel, in dit voorbeeld, kolom B filter: zwolle
Kolom A bevat hele regels van misschien wel 100-200 of meer tekens.

Daar moet ik op meerdere woorden filteren.
Ik kan dus niet om 'Contains' heen.

Stel dat het over het onderhoud van je auto zou gaan, dan filteren waar ergens in de tekst voorkomt
schade
of
beurt
of
remblokjes
of
wisserbladen
of
huurauto

...
 

Dank!!

Ik kom erop terug...

In het bestand waar ik in werk een runtime error '5'

Iedere keer opnieuw.

ik heb dat testbestandje van toen, uit bovenstaande thread, gedownload, de kolom uit mijn 'werkbestand' daarin gekopieerd.
Dus in het testbestandje (die uit die oude thread) en in mijn werkbestand staan dezelfde kolommen, zelfde inhoud.

De macro werkt wel in het testbestand, helaas niet in mijn 'werkbestand'.

ksnapperniksvan...

Ik ga morgen wel verder kijken.

testbestand bestaat uit 2 kolommen.
M'n werkbestand iets van 22.
 

Bijlagen

  • SnagIt-30012022 172109.png
    SnagIt-30012022 172109.png
    24,9 KB · Weergaven: 19
Zo zou hij wel moeten werken. Als er geen match was, gaf hij en error. Nu niet meer

Code:
Sub jec()
 Dim a() As Variant, ar As Variant, it As Variant, XX As String, i As Long, x As Long
 ar = Sheets(1).Cells(1, 1).CurrentRegion
 XX = InputBox("Kies namen(Komma gescheiden!)", "Filter")         'zoals:  woord1,woord2,woord3
 
 For Each it In Split(XX, ",")
   For i = 1 To UBound(ar)
     If InStr(1, ar(i, 2), it, vbTextCompare) Then
        ReDim Preserve a(x)
        a(x) = ar(i, 2)
        x = x + 1
     End If
   Next
 Next
 If x Then Sheets(1).Cells(1, 1).CurrentRegion.AutoFilter 2, a, 7
End Sub
 
Hartelijk dank nogmaals.

Ik dacht dat ik het probleem te pakken had, dacht.

Bronbestand, kopieer kolom A en kolom B
naar testbestand, sheet1 en naar sheet2.
dus 2 workbooks met 3 sheets met gelijke gegevens.

testbestand, sheet1: macro werkt prima.
testbestand, sheet2: jammer maar helaas, geen foutmelding overigens, maar er gebeurt niets.

Mijn leken-aanname was dus, het heeft met de naam te maken (worksheet naam), bij sheet1 wel, sheet2 niet.
Macro gaat uit van Sheet1 als naam(??) Weet ik veel.

Terug naar bronbestand.

Ik hernoem daar de worksheet naar 'Sheet1', jammer maar helaas, foutmelding, de oude macro nog.

Overigens, zoeven die 2 kolommen óók nog eens gekopieerd naar een compleet nieuw workbook, sheet1 en sheet2.
Hetzelfde effect als in het testbestand.

Ik ga die nieuwe macro nu uitproberen.
 
De macro verwijst naar een bepaalde sheet.
Die moet dan ook aangepast worden
 
Snapperniksmeervan.

Binnen mijn 'bronbestand', waarin ik dus werk, de hele worksheet gekopieerd, en hernoemd naar Sheet1 - er zitten geen formules in, niks.
Macro doet niets.

Dan, nieuw workbook, hele worksheet vanuit bronbestand, ctrl a en copy -paste in het nieuwe bestand

Macro werkt.

Ik durf niet alle tabbladen zomaar eventjes naar een nieuw workbook te kopiëren - er staan her en der de nodige formules.
misschien wordt een chaos.

De macro staat in personal.xlsb overigens.

Ik kijk nooit onder VBA Project - het zegt mij ... niets.
Klopt het dat er staat:
VBAProject (bestandsnaam)
Folder Microsoft Excel Objects
met daaronder alle sheets met de namen

en
helemaal onderaan
ThisWorkbook

?
 
Maar pas eens overal in de code aan:

Sheets(1) naar Sheets("Sheet1")
 
De macro verwijst naar een bepaalde sheet.
Die moet dan ook aangepast worden

Hele workbook naar een nieuw workbook gekopieerd.

worksheet hernoemd naar Sheet1 - er gebeurt niets.
Sheet1 verplaatst naar het begin van de rij, helemaal links dus (hij stond als 3e)
Toen deed 'ie het

Het moet dus Sheet1 zijn op de 1e plaats?
 
Ja of je maakt een harde verwijzing, zoals aangegeven in mijn vorige post
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan