Avatar billede janvogt Praktikant
14. november 2000 - 13:02 Der er 4 kommentarer og
1 løsning

Checkbox

I en userform har jeg oprettet en checkbox, som kører en makro, som skjuler/viser 3 kolonner i mit regneark når den vælges/fravælges.
Mit problem er, at jeg ikke kan få min userform til at \'huske\' værdien af checkboxen til næste gang den åbnes.
Hvordan skal koden være?
Avatar billede nerøs Nybegynder
14. november 2000 - 21:18 #1
Det kan gøres på flere forskellige måder men en er et skjultnavn i regnearket:
ThisWorkbook.Names.Add Name:=\"Checkbox\", RefersTo:=<checkboxnr>, Visible:=False

værdien hentes med:
right(ThisWorkbook.Names(\"checkbox\"),1)

(Værdien i navnet aflæses med \"=\" foran)

En anden modtode er at bruge Savesetting og Getsetting funktionerne der gemmmer i Windows registry
Avatar billede janvogt Praktikant
15. november 2000 - 10:45 #2
Jeg forstår ikke helt ..... Lad mig uddybe:

Den Excel-macro, som skjuler de tre kolonner hedder Skjul_BCD og den makro som viser dem igen hedder Vis_BCD.

Checkboxen fungerer altså således:

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
    Skjul_BCD
Else
    Vis_BCD
End If
End Sub

Mit problem er, at CheckBox1.value får defaultværdien \"TRUE\" hver gang Userform1 aktiveres. Jeg har derfor behov for at få CheckBox1.value gemt hver gang jeg afslutter Userform1. Dette skal vel ske i nedenstående Sub:

Private Sub CommandButton1_Click()
    Unload UserForm1
End Sub

Denne værdi skal så \'restores\' når Userform1 aktiveres. Dette sker i:
Private Sub UserForm_Initialize()

Hvor skal dine koder sættes ind?
Det må være et simpelt problem. Jeg har prøvet at gemme værdien i en varabel og så kalde den igen når Userformen aktiveres, men det vil ikke rigtigt lykkes for mig.

Jeg er temmelig \'grøn\' i VB so \'Keep it simple\'.

Hvorvidt der skal bruges SaveSetting/GetSetting eller settings skal gemmes i et skjult ark er ligegyldigt - bare det virker!
Avatar billede janvogt Praktikant
15. november 2000 - 11:46 #3
Jeg fandt selv ud af det. Det VAR simpelt!!!
Løsning: I stedet for \"Unload Userform1\" skal man bruge \"Userform1.Hide\".
Nogle gange er verden mere simpel end man lige tror .......

Hvad gør man når man ønsker at trække spørgsmålet tilbage, alternativt uddele lidt point inden man trækker det tilbage?
Avatar billede nerøs Nybegynder
15. november 2000 - 20:30 #4
Userform.hide husker værdien fordi den blot - som navnet antyder - skjuler boxen. Hvis værdien skal huskes efter boxen har været lukket eller næste gang man åbner regenarket må man gemme skiftende startparametre et andet sted.




VH Nerøs
Avatar billede janvogt Praktikant
16. november 2000 - 12:52 #5
Det har du ret i, men i ovenstående situation er det tilstrækkeligt blot at skjule boxen.

Userformen bruges til forskellige visninger samt udskrifter, så det er ok at der vises default-værdier første gang efter at filen er åbnet.

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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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