[Excel] Waarde checkbox onthouden

Pagina: 1
Acties:

  • Sherlock
  • Registratie: Mei 2000
  • Laatst online: 21:35
Ik heb een Excel bestand met verschillende werkbladen, die elke week ingevuld moeten worden. Nu wil ik dat bij het openen van het bestand een formulier tevoorschijn komt wat aangeeft welke bladen al ingevuld zijn.

Dat formulier heb ik gemaakt, en ik heb het ook laten verschijnen bij het opstarten. De checkboxes die ik gebruikt heb werken goed als je ze aanklikt om "aan" en "uit" te zetten. Alleen de waarde wordt niet onthouden als je het bestand gesloten hebt.

Ik dacht dit op te vangen door de checkbox te koppelen aan een cel, en bij het starten van het formulier de volgende code te plaatsen:
code:
1
2
3
If Sheets("Bijgewerkt").Range("B1").Value = 1 Then
        frmBijhouden.chkAlros = True
End If

Die 1 krijgt hij dan zodra ik een blad bijgewerkt heb en de checkbox aanvink. (dat werkt):
code:
1
2
3
4
5
6
Private Sub chkAlros_Click()
    If chkAlros = True Then
        Sheets("Bijgewerkt").Range("B1") = 1
        Else: Sheets("Bijgewerkt").Range("B1") = 0
    End If
End Sub


Het probleem is nu dat het formulier niet onthoud wat er ingevuld is. Dus het lijkt erop dat de koppeling vanaf de cel naar het formulier niet werkt. Kan iemand mij vertellen waar ik de mist in ga?

And if you don't expect too much from me, you might not be let down.


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:06
Lijkt OK, dus debugachtige activiteiten:
Loopt je programma langs die code? (breakpoint)
Sherlock schreef op 17 juni 2004 @ 11:21:
code:
1
2
3
If Sheets("Bijgewerkt").Range("B1").Value = 1 Then
        frmBijhouden.chkAlros = True
End If
Zet daar eens een
code:
1
msgbox Sheets("Bijgewerkt").Range("B1").Value
in, misschien dat je er zo achter komt wat er mis gaat.
Waar heb je die check overigens ingezet? form_activate, initialize? etc.
't wil misschien wel helpen je code voor je form.show te zetten, dus:
code:
1
2
3
4
If Sheets("Bijgewerkt").Range("B1").Value = 1 Then
        frmBijhouden.chkAlros = True
End If
frmBijhouden.Show

Pribeer evt. met je immediate window erachter te komen wanneer je checkbox welke waarde heeft
code:
1
?frmbijhouden.chkAlros.value

i.c.m. breakpoints.

[ Voor 37% gewijzigd door onkl op 17-06-2004 11:33 . Reden: Meer ideetjes ]


  • Sherlock
  • Registratie: Mei 2000
  • Laatst online: 21:35
OMG! Dit was wel zo ongelooflijk stom he, ik had mijn frm.show staan voor de IF constructie... 8)7

Als ik die erachter zet werkt het meteen! Bedankt onkl!

edit:
Overigens ben ik er wel zelf achter gekomen, dus voordat jij je edit had geplaatst

[ Voor 25% gewijzigd door Sherlock op 17-06-2004 11:40 ]

And if you don't expect too much from me, you might not be let down.


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:06
Well done.
In het algemeen is het idee dat je dit soort initialisatie van je form ergens in de code van je formulier plakt.
Probeer Form_initialize of Form_activate.
Voordelen:
-Als je je form vanaf een andere plek aanroept gaat check'ie toch.
-'t is netter (en voorkomt fouten als dit)
-je form is "self contained", je kan'm exporteren en importeren en zo.

  • Sherlock
  • Registratie: Mei 2000
  • Laatst online: 21:35
Oké, bedankt! Zo leer je nog eens wat op een grauwe donderdagmorgen! Ikheb hem nu in de Form_initialize gezet en dat werkt (uiteraard?) goed.

And if you don't expect too much from me, you might not be let down.