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

Status
Niet open voor verdere reacties.

Rhugien

Gebruiker
Lid geworden
10 sep 2008
Berichten
27
Hallo ,

Zit met een probleem met het maken van, ik denk, een filter.

Ik wil graag bij een kolom een filter toepassen waarbij de opmaak behouden wordt wanneer de filter wordt toegepast.
Ook moet daarbij de cel, waarbij ik aangeef hoe de kolom gefiltert moet worden, willekeurig ergens te plaatsen zijn :)

Kan dit?

In de bijlage heb ik het waarschijnlijk wat duidelijker aangegeven.
 

Bijlagen

Ik ben geen held in VBA maar hier is iig een oplossing:

Code:
Private Sub test()

ScreenUpdating = False

For Rij = 5 To 96 Step 7
    If Cells(Rij, 1).Value = Range("F10").Value Then
        Rows(Rij & ":" & Rij + 6).Hidden = False
    Else
        Rows(Rij & ":" & Rij + 6).Hidden = True
    End If
Next Rij

ScreenUpdating = True

End Sub

Bedenk wel dat als je een maand selecteerd die niet "Januari" is dat je referentiecel (F10) ook verborgen wordt. Ik zou dus een andere plaats kiezen voor deze cell.
Een filter is in jouw voorbeeld niet mogelijk omdat een filter geen rekening houdt met merged cells.
Wellicht is er ook een beter code in VBA te schrijven maar nu heb je iig iets om over te denken.
 
Ik ben geen held in VBA maar hier is iig een oplossing:

Code:
Private Sub test()

ScreenUpdating = False

For Rij = 5 To 96 Step 7
    If Cells(Rij, 1).Value = Range("F10").Value Then
        Rows(Rij & ":" & Rij + 6).Hidden = False
    Else
        Rows(Rij & ":" & Rij + 6).Hidden = True
    End If
Next Rij

ScreenUpdating = True

End Sub

Bedenk wel dat als je een maand selecteerd die niet "Januari" is dat je referentiecel (F10) ook verborgen wordt. Ik zou dus een andere plaats kiezen voor deze cell.
Een filter is in jouw voorbeeld niet mogelijk omdat een filter geen rekening houdt met merged cells.
Wellicht is er ook een beter code in VBA te schrijven maar nu heb je iig iets om over te denken.

Jij geen held?
haha, ik helemaal niet..
heb wat creatief gezocht op internet en ben er dus achter dat als ik "alt-F11" selecteer in de VBA terecvht kom. Daar heb ik jou code ingevoerd echter zie ik op het eerste zicht niets veranderen.

Doe ik iets verkeerd?

Nogmaals bedankt alvast,

Rens
 
Jij geen held?
haha, ik helemaal niet..
heb wat creatief gezocht op internet en ben er dus achter dat als ik "alt-F11" selecteer in de VBA terecvht kom. Daar heb ik jou code ingevoerd echter zie ik op het eerste zicht niets veranderen.

Doe ik iets verkeerd?

Nogmaals bedankt alvast,

Rens

Het is een macro die je nog wel zelf moet starten.
Dat doe je via Extra - Macro - Macro's.
De macro heet test.

Met vriendelijke groet,


Roncancio
 
Je moet de code wel laten lopen voordat er iets gebeurt. Ik zal proberen uit te leggen wat je moet doen:

1) Druk op Alt-F11 om in VBA terecht te komen en dubbelklik links op het blad waarin je VBA code moet werken (blad1 in het geval van je voorbeeld).
2) Plak de code die ik eerder gegeven heb in de lege pagina.
3) Klik nu bovenin op het pijltje naar rechts of druk op F5 om de code te laten lopen.

Als je het goed doet moet je nu wel iets zien gebeuren. Om stap voor stap te zien wat er gebeurt kun je met F8 kleine stapjes zetten in de progammacode.

Nog enkele tips:
- Om mee te krijgen wat er op het scherm gebeurt haal je de regels "Screenupdating = True" en "Screenupdating = False" uit de code
- Je kunt dit uitbreiden zodat de code begint te lopen zodra je de waarde in cel F10 veranderd, maar dit lijkt me iets voor later ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan