Avatar billede gladhund Nybegynder
07. marts 2006 - 09:34 Der er 13 kommentarer og
1 løsning

Vise og skjule kolonner med VBA via Userform

Hej Eksperter

Jeg har ledt på forummet uden held, så nu spørger jeg.

Jeg har en userform med en række checkbokse, hvor hver af dem refererer til en kolonne, der enten kan vises eller skjules.

Kan nogen hjælpe mig med kode til at få dette til at virke?
Avatar billede gladhund Nybegynder
07. marts 2006 - 09:39 #1
Jeg skal lige sige, at det er let nok at skjule dem;

Range("C:C").Select
Selection.EntireColumn.Hidden = True

Men jeg kan ikke få dem frem igen ved at bruge .Hidden = False i stedet...
07. marts 2006 - 09:46 #2
Range("C:C").EntireColumn.Hidden = True
Range("C:C").EntireColumn.Hidden = False

virker fint - har du glemt EntireColumn når du skal vise kolonnen igen?
Avatar billede gladhund Nybegynder
07. marts 2006 - 09:56 #3
Tak for det hurtige svar :-)

Det virker mærkelig nok ikke! Den skjuler, men viser ikke igen - og jeg bruger præcis den kode du har givet...?
Avatar billede gladhund Nybegynder
07. marts 2006 - 09:57 #4
Bruger den her kode til checkboksene - måske fejlen ligger der?

Sub VisSkjulKolonner()

Application.ScreenUpdating = False

If chkBeskrivelse = True Then VisBeskrivelse

If chkBeskrivelse = False Then SkjulBeskrivelse


Application.ScreenUpdating = True

End Sub
Avatar billede gladhund Nybegynder
07. marts 2006 - 09:58 #5
... og så

Sub Visbeskrivelse()
Range("C:C").EntireColumn.Hidden = False
End sub
07. marts 2006 - 10:03 #6
Application.ScreenUpdating = False - så kan skærmen ikke opdatere

Sub Visbeskrivelse()
Application.ScreenUpdating = True
Range("C:C").EntireColumn.Hidden = False
Application.ScreenUpdating = False
End sub

Eller hvis du blot lukker dialogboksen efter du har vist kolonne C, så burde du kunne se kolonnen.

Tror måske du blot har et skærmopdaterings issue
Avatar billede gladhund Nybegynder
07. marts 2006 - 10:26 #7
Nu har jeg fjernet alt der har med skærmopdatering at gøre, og det hjælper ikke. Jeg tror det ligger hos checkboksene - for når man klikker til/fra skjuler den kolonnen i begge tilfælde, selvom de har hver deres kode (True/False)!

Koden til Userform ser sådan ud:

Private Sub chkBeskrivelse_Click()
VisSkjulKolonner
End Sub

... Så kører den følgende:

Sub VisSkjulKolonner()


If chkBeskrivelse = True Then Range("C:C").EntireColumn.Hidden = False

If chkBeskrivelse = False Then Range("C:C").EntireColumn.Hidden = True


End Sub

?
07. marts 2006 - 12:42 #8
Jeg har lige testet nedenstående, og det virker fint hos mig Excel 2003

Private Sub chkBeskrivelse_Click()
    VisSkjulKolonner chkBeskrivelse.Value
End Sub

Sub VisSkjulKolonner(ByVal bHidden As Boolean)
    Range("C:C").EntireColumn.Hidden = bHidden
End Sub
Avatar billede gladhund Nybegynder
07. marts 2006 - 12:50 #9
Snedigt! Det virker - mange tak :-)
Avatar billede gladhund Nybegynder
07. marts 2006 - 12:53 #10
Bortset fra... hvis man kunne reverse den ville det være helt perfekt. Lige nu fjerner man hak, og så skjuler den. Det ville være mere brugervenligt hvis man fjernede hak, for at skjule - kan man det?
Avatar billede gladhund Nybegynder
07. marts 2006 - 12:54 #11
Undskyld - man sætter hak for at skjule som det er nu...
07. marts 2006 - 13:10 #12
Sub VisSkjulKolonner(ByVal bHidden As Boolean)
    Range("C:C").EntireColumn.Hidden = Not bHidden
End Sub
07. marts 2006 - 13:10 #13
Du bruger bare et lille NOT hvis du vil lave om på det
Avatar billede gladhund Nybegynder
07. marts 2006 - 13:14 #14
Takker! Fornemt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester