Skjul/vis kolonner ved hjælp af checkbox

Dette er igen en opgave, lavet på bestilling. I virkeligheden kunne denne løsning havde været placeret under Småmakroer, men det blev den så ikke, da jeg gerne ville give en mere detaljeret forklaring. Opgaven gik ud på at man ved hjælp af en afkrydsningsboks (Checkbox) skulle kunne skjule og vise nogle forhåndsdefinerede kolonner.

Ved hjælp af en checkbox, som den viste, skal nogle udvalgte regnearket skjules, når der sættes flueben i boksen, og vises, når fluebenet fjernes igen. I det konkrete eksempel var det kolonnerne B, E og H, men det kan naturligvis nemt ændres til andre kolonner, ligesom flere kolonner kan tilføjes. Skift til fanebladet Udvikler. Hvis det ikke er vist, kan du højreklikke et sted i båndet og vælge Tilpas båndet. Sæt flueben ud for Udvikler i ruden til højre og klik OK. Klik på knappen Indsæt i gruppen Kontrolelementer i den nye fane.

Først skal checkboksen indsættes. Det gøres ved hjælp af dialogboksen, vist til højre. Som det kan ses, kan man vælge mellem to forskellige checkboxe, den ene fra Kontrolelementer for Formular, den anden fra Active-X objekter. Begge vil kunne bruges, men her har jeg valgt Active-X objektet. Træk derefter en boks af passende størrelse ud i et sted i regnearket. Højreklik på boksen og vælg  Checkbox object og så Edit. Så kan man rette teksten i boksen til det, man vil have der skal stå i den, fx som her Vis/Skjul kolonner. Nu kan man så med musen trække boksen til den placering i arket, man gerne vil have. Når den er placeret korrekt, skal den låses. Det gøres ved igen at højreklikke på boksen. Denne gang vælges Formater kontrolelement. I dialogboksen skiftes til fanebladet Egenskaber. Her markeres Bevar celleplacering og størrelse. Så bliver boksen hvor den er, også når kolonnerne vises og skjules. Højreklikker du igen og vælger Egenskaber, kan der indstilles en række yderligere egenskaber for boksen, men disse vil jeg ikke komme ind på her. Til sidst skal vi have boksen til at gøre det vi ønsker.

Højreklik endnu engang på checkboxen og vælg Vis programkode. VBA editoren vil nu blive åbnet med to linjer indsat,

Private Sub CheckBox1_Click()

End Sub

mellem disse to linjer skal koden nu skrives, så det hele til sidst ser sådan ud

Private Sub CheckBox1_Click()
    If Range("B:B,E:E,H:H").EntireColumn.Hidden = False Then
        Range("B:B,E:E,H:H").EntireColumn.Hidden = True
    ElseIf Range("B:B,E:E,H:H").EntireColumn.Hidden = True Then
        Range("B:B,E:E,H:H").EntireColumn.Hidden = False
    End If
End Sub

Skal du arbejde med andre kolonner end de, der bruges i dette eksempel, skal du rette indholdet af parenteserne i koden.

Luk editorvinduet og klik på knappen Designtilstan i fanen Udvikler. Afprøv din funktion.
 

- Tilbage til makroer -
- Tilbage til Excel -