Filteren met een macro

Status
Niet open voor verdere reacties.

Pernella

Gebruiker
Lid geworden
7 dec 2018
Berichten
8
Goedemiddag,

Ik probeer een filter te maken in VBA. Het volgende is de bedoeling:

De filter moet elke rij bij langs, zodra er in een van de cellen een bepaald woord staat, moet deze cel niet verborgen worden.

Op dit moment heb ik deze code:

Code:
Private Sub CommandButton1_Click()
    
    With ActiveSheet
        .AutoFilterMode = False
        .Range("A:R").AutoFilter
        
        With .AutoFilter.Range
            If TextBox1.value <> "" Then
                For t = 1 To 2
                    .AutoFilter Field:=t, Criteria1:=TextBox1.value
                Next
            End If
        End With
    End With
    
End Sub
Nu wordt alleen de cel gefilterd als de waarde van TextBox1 in de eerste twee cellen voor komt. Kan iemand mij helpen om het voor elkaar te krijgen dat wanneer field 1 of 2 de tekst bevat, de rij alsnog gefilterd wordt?
 
Laatst bewerkt door een moderator:
Mij lijkt een voorbeeldbestand een goede aanvulling voor deze vraag. In de diverse kolommen komt steeds de waarde TextBox1.value voor? Lijkt mij een rare opzet. Maar als het zo is dan heb je het geavanceerde filter nodig.
 
Goedemorgen,

Ik wil graag een macro maken die het volgende doet:

Projectnaam Resultaat Middelen
Test1 FEM-analyse resultaten zijn ... FEM, NEN
Test2 Geen afwijkende resultaten NEN
Test 3 Resultaten komen overeen FEM

Nu zou de macro moeten gaan zoeken naar bijvoorbeeld het woord "FEM" in de hele worksheet. Vervolgens alle regels die dit woord bevatten filteren. Dus dan zou Test1 en Test3 in de filter terecht komen.
Helaas krijg ik dit met de AutoFilter nog niet voor elkaar.
 
Laatst bewerkt:
hierbij een testbestand

Als ik een knop aanmaak, wil ik graag dat rij 2 en 3 gefilterd worden op wanneer er gezocht wordt op "FEM"
 

Bijlagen

  • Testbestand.xlsx
    8,9 KB · Weergaven: 20
Met het geavanceerde filter.

Code:
Sub VenA()
  Cells(2, 26) = "*" & InputBox("waarde:") & "*"
  Cells(1).CurrentRegion.AdvancedFilter 1, Cells(1, 26).CurrentRegion
End Sub
 

Bijlagen

  • Testbestand.xlsb
    14,1 KB · Weergaven: 28
Gebruik een 'intelligente' tabel (in VBA 'Listobject').
 
Ik denk dat ik weet waar de fout in zit.

In Rij 1 heb ik een titel staan met al mijn knoppen. Dit betekent dat mijn data begin in rij 3.
Hoe kan ik de code van de AdvancedFilter zo aanpassen dat rij 1 en 2 niet meegenomen worden in de filter?
 
Laatst bewerkt:
Je heb een wachtwoord op je VBA project staan vandaar dat het niet te zien is.
 
Zie de bijlage
 

Bijlagen

  • __te simpel voor woorden.xlsx
    15,7 KB · Weergaven: 26
Het is eenvoudiger dan wat je zoekt.

Vergelijk de hoeveelheid code van jouw kalender eens met de onderstaande:
 

Bijlagen

  • __Userform kalender_snb.xlsb
    28,5 KB · Weergaven: 32
Laatst bewerkt:
Heb je het bestand in #7 wel bekeken? Kijk eens vanaf kolom Z. Klakkeloos overnemen van code in het echte bestand gaat natuurlijk nooit werken als dit afwijkt van het voorbeeldbestand. Door gebruik te maken een intelligente' tabel (in VBA 'Listobject') kan je zonder afhankelijk te zijn van waar deze tabel staat ook het geavanceerde filter gebruiken. Voorbeeldbestanden hebben ook als doel om de kern van de vraag weer te geven. Bijna elke cel die ik aanklik geeft een hinderlijke popub waar niemand op zit te wachten.

Nb de hele hinderlijke code kan waarschijnlijk ook zo.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Selection.Count = 1 And Target.Row > 1 Then
    Select Case Target.Column
      Case 8, 9: Kalender.Show
      Case 14: Geheimhouding_Project.Show
      Case 18:  Middelen.Show
    End Select
  End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan