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

Meerdere kolommen filteren met 1 textbox

  • Onderwerp starter Onderwerp starter Wexx
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Wexx

Gebruiker
Lid geworden
1 sep 2008
Berichten
10
Hallo daar,

ik ben al een tijdje bezig met het maken van een klein magazijn bestand waar we onze voorraad actueel bij kunnen houden en tevens items snel kunnen vinden.
Dankzij dit forum ben ik al een heel eind gekomen ondanks mijn minimale kennis van excel en VBA.

Mijn probleem:

Voor het zoeken heb ik een UserForm aangemaakt en voor iedere kolom waarin ik wil zoeken een textbox.
In princiepe werkt het prima maar, ik zou graag met 1 textbox in kolom 1 t/m 6 naar hetzelfde woord willen zoeken.

Op dit moment heb ik deze code:

Code:
Private Sub Opdrachtknop1_Click()

    With ActiveSheet
        
        .AutoFilterMode = False
        .Range("E7").AutoFilter

        With .AutoFilter.Range

            If TextBox1.Value <> "" Then
                .AutoFilter Field:=1, Criteria1:="*" & TextBox1.Value & "*"
            End If
            
            If TextBox2.Value <> "" Then
                .AutoFilter Field:=2, Criteria1:="*" & TextBox2.Value & "*"
            End If
            
            If TextBox3.Value <> "" Then
                .AutoFilter Field:=3, Criteria1:="*" & TextBox3.Value & "*"
            End If
            
            If TextBox4.Value <> "" Then
                .AutoFilter Field:=4, Criteria1:="*" & TextBox4.Value & "*"
            End If
            
            If TextBox5.Value <> "" Then
                .AutoFilter Field:=5, Criteria1:="*" & TextBox5.Value & "*"
            End If
            
            If TextBox6.Value <> "" Then
                .AutoFilter Field:=6, Criteria1:="*" & TextBox6.Value & "*"
            End If
            
            
        End With

    End With

End Sub

Iemand die mij een duwtje in de goede richting wilt geven?
 
Bedoel je het zo:

Code:
Private Sub Opdrachtknop1_Click()

    With ActiveSheet
        
        .AutoFilterMode = False
        .Range("E7").AutoFilter

        With .AutoFilter.Range
            If TextBox1.Value <> "" Then
                For T = 1 To 6
                    .AutoFilter Field:=T, Criteria1:="*" & TextBox1.Value & "*"
                Next
            End If
        End With
    End With

End Sub

Bovenstaande code zoekt in de 6 kolommen naar de waarde die in Textbox1 is ingevuld.
De overige Textboxen zijn dus overbodig geworden.

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,

bedankt voor je (snelle) reactie,

in princiepe klopt hetgene wat je zegt!
Gek genoeg laat hij nu geen "hits" meer zien. Het zoekwoord komt niet meer op het scherm en laat alle velden leeg.



Bedoel je het zo:

Code:
Private Sub Opdrachtknop1_Click()

    With ActiveSheet
        
        .AutoFilterMode = False
        .Range("E7").AutoFilter

        With .AutoFilter.Range
            If TextBox1.Value <> "" Then
                For T = 1 To 6
                    .AutoFilter Field:=T, Criteria1:="*" & TextBox1.Value & "*"
                Next
            End If
        End With
    End With

End Sub

Bovenstaande code zoekt in de 6 kolommen naar de waarde die in Textbox1 is ingevuld.
De overige Textboxen zijn dus overbodig geworden.

Met vriendelijke groet,


Roncancio
 
Hmm, dat is raar want ik heb uitsluitend de code voor de 6 Textboxen in 1 textbox gebracht en verder geen aanpassingen gedaan.
Bovendien heb ik het getest en werkte het prima.


Met vriendelijke groet,


Roncancio
 
Ha Roncancio,

vanwege mijn werk reageer ik pas weer zo laat.
Ik ben nog even bezig geweest om te kijken of ik het aan de praat kreeg.

Ik heb jouw code gecopieerd in een nieuw excel bestand en gekeken of het dan wel werkte. Ook daar gaf hij problemen.
Doe ik iets anders als jou?


Hmm, dat is raar want ik heb uitsluitend de code voor de 6 Textboxen in 1 textbox gebracht en verder geen aanpassingen gedaan.
Bovendien heb ik het getest en werkte het prima.


Met vriendelijke groet,


Roncancio
 
Ha Roncancio,

vanwege mijn werk reageer ik pas weer zo laat.
Ik ben nog even bezig geweest om te kijken of ik het aan de praat kreeg.

Ik heb jouw code gecopieerd in een nieuw excel bestand en gekeken of het dan wel werkte. Ook daar gaf hij problemen.
Doe ik iets anders als jou?

Je zou bijna denken van wel.
Voor de zekerheid heb ik een voorbeeld bestand bijgesloten.
In dat bestand zit een Autofilter en een userform met een textbox en een commandobutton.
Zodra je een letter of cijfer intoetst en je klikt op de button dan wordt de sortering uitgevoerd.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Ha rocancio,

inderdaad werkt het bestandje wat toegevoegd hebt.
Hier ondekte ik in dat wanneer niet in alle kolommen de tekst b.v. B2B hebt staan het niet meer functioneerde.
Dit is waarschijnlijk ook het probleem bij mijn bestand.


Je zou bijna denken van wel.
Voor de zekerheid heb ik een voorbeeld bestand bijgesloten.
In dat bestand zit een Autofilter en een userform met een textbox en een commandobutton.
Zodra je een letter of cijfer intoetst en je klikt op de button dan wordt de sortering uitgevoerd.

Met vriendelijke groet,


Roncancio
 
Ha rocancio,

inderdaad werkt het bestandje wat toegevoegd hebt.
Hier ondekte ik in dat wanneer niet in alle kolommen de tekst b.v. B2B hebt staan het niet meer functioneerde.
Dit is waarschijnlijk ook het probleem bij mijn bestand.

Inderdaad omdat je ipv 6 zoekwaardes nu maar 1 zoekwaarde gebruikt moet deze zoekwaarde in al die kolommen voorkomen.

Met vriendelijke groet,


Roncancio
 
Hallo daar,

misschien dat mijn vraag niet helemaal duidelijk gesteld was, (mijn excuses).

De bedoeling is een zoekfunctie te creeren die doormiddel van 1 zoekwoord in te vullen de gehele sheet doorzoekt en als er ergens in een regel dat woordt (of een deel van dat woord) tegen komt deze laat zien.

Ik ben zelf ook al druk bezig geweest zonder ruseltaat.
Is het niet mogelijk om een "or" functie te maken in de oplossing van rocancio?

Alvast bedankt.
 
Hallo daar,

misschien dat mijn vraag niet helemaal duidelijk gesteld was, (mijn excuses).

De bedoeling is een zoekfunctie te creeren die doormiddel van 1 zoekwoord in te vullen de gehele sheet doorzoekt en als er ergens in een regel dat woordt (of een deel van dat woord) tegen komt deze laat zien.

Ik ben zelf ook al druk bezig geweest zonder ruseltaat.
Is het niet mogelijk om een "or" functie te maken in de oplossing van rocancio?

Alvast bedankt.

Dus eigenlijk een soort find-functie.
Bijv.:

Code:
Private Sub CommandButton1_Click()

    With ActiveSheet.Cells()
        Set ZK = .Find(TextBox1.Value, LookIn:=xlValues, lookat:=xlPart)
            If Not ZK Is Nothing Then
                MsgBox ZK
            End If
    End With

End Sub

Met vriendelijke groet,


Roncancio
 
Ik heb even een bestandje toegevoegd met de situatie zoals deze op het moment is.

Het werkt precies zoals ik het zou willen.

Alleen zou het nog gemakkelijker zijn om het woord in 1 textbox in te vullen en dat hij alle kolommen doorzoekt.
Momenteel moet je in het juiste textboxje je zoekwoord invullen, doe je dit verkeerd dan zul je geen "hits" hebben.
 

Bijlagen

Ik kan geen .rar bestanden openen.
Gaarne zippen of een bericht maar mijn privé mail sturen zodat ik kan replyen.

Met vriendelijke groet,


Roncancio
 
Ik heb naar je userform gekeken en aan de hand daarvan een simpele userform toegevoegd die per kolom sorteert op de ingevoerde waarde. Het betreft dus 1 tekstveld voor de 6.

Met vriendelijke groet,


Roncancio

Ps. je hoeft het bestan niet te zippen of .rarren. Zo groot is het bestand niet.
 

Bijlagen

Code:
Sub tst()
  c1 = Cells(1,1).CurrentRegion.Find("mm").Address
  Do Until c1 = "" Or InStr(c0, c1) > 0
    c0 = c0 & IIf(c0 = "", "", ",") & c1
    c1 = Cells(1,1).CurrentRegion.FindNext(Range(Right(c1, 4))).Address
  Loop
  Range(c0).Select
End Sub
 
Hallo,

heel erg bedankt iedereen voor de medewerking.
Dit is inderdaad hetgene wat ik zocht :thumb:

Een klein miniscul puntje is als b.v. de kolom van benaming een "hit" heeft en dus gaat filteren de andere kolommen (die erna komen) het zoekwoord niet meer te zien is.
B.v. bij het woord LB (merknaam) maar hij vindt "lb" al bij het woord koppelbus.

Maar, thumbs up voor de reacties.

Ik heb naar je userform gekeken en aan de hand daarvan een simpele userform toegevoegd die per kolom sorteert op de ingevoerde waarde. Het betreft dus 1 tekstveld voor de 6.

Met vriendelijke groet,


Roncancio

Ps. je hoeft het bestan niet te zippen of .rarren. Zo groot is het bestand niet.
 
Hallo,

heel erg bedankt iedereen voor de medewerking.
Dit is inderdaad hetgene wat ik zocht :thumb:

Een klein miniscul puntje is als b.v. de kolom van benaming een "hit" heeft en dus gaat filteren de andere kolommen (die erna komen) het zoekwoord niet meer te zien is.
B.v. bij het woord LB (merknaam) maar hij vindt "lb" al bij het woord koppelbus.

Maar, thumbs up voor de reacties.

Ik heb de code aangepast zodat ook de andere kolommen worden meegenomen.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan