|
Filtrering uden at bruge filterDenne opgave kunne lige så vel have været l'øst ved hjælp af filtrering, fx ved hjælp af Autofilter, og der kunne have været lavet en makro, der anvendte filterfunktionen, men i det konkrete tilfælde var der et ønske om at undgå at anvende filter. Opgaven var beskrevet som et stort regneark med data i mange kolonner og mange rækker (omkring 1000 pt. men antallet stiger løbende). De enkelte kolonner indeholder forskellig information, der skal opdateres med mellemrum, men kun for en given måned ad gangen. I C-kolonnen er der registreret måneder for de enkelte posteringer. Et uddrag kunne se således ud C1 indeholder en rulleliste (dropdown) i form af en datavalideringsliste med månedsnavnene samt "Alle" som vist i figuren. Når der vælges en måned i denne rulleliste, skal kun de posteringer fra den pågældende måned vises i regnearket; de øvrige skal skjules. Posteringerne i de enkelte rækker er ikke sorteret efter måned, men efter information i kolonne H (ikke vist i eksemplet). Nedenstående makro løser opgaven. Makroen er en hændelsesmakro (se evt. Hændelser under Programmering og den hændelse, der udløser afspilning af makroen er den såkaldte Worksheet_Change hændelse, der indtræffer, når der ændres i en celle i arket. Koden skal derfor placeres i kodearket for det konkrete regneark. (Højreklik på arkfanen og vælg 'Vis programkode'. Koden er her vist med kommentarer, der forklarer de enkelte dele
Private Sub
Worksheet_Change(ByVal Target As Range) End Sub |