checkbox probleem

Status
Niet open voor verdere reacties.

michelleblanc

Gebruiker
Lid geworden
24 aug 2016
Berichten
32
Hallo,

Ik heb een excel met een userform met verschillende checkboxen. Als ze gevinkt zijn en de file wordt gesaved, wil ik dat de eerder gevinkte checkboxen na het opnieuw openen "gevinkt" blijven. Welke code is nodig om dit te doen?

Dank voor reply.
 
Om te beginnen natuurlijk een voorbeeld bestandje :). Of wil je dat we zelf eerst iets gaan bouwen? Je vraag is ook te complex om daar zomaar wat voor te gaan roepen. Want je kunt een formulier pas inlezen met waarden als je die waarden ergens opslaat. En dat kan op verschillende manieren.
 
Hey Octafish,

Mijn userform betsaat uit een reeks checkboxen welke een aantal rijen doet hiden of unhiden.

Standaard staat alles in mijn sheet hidden.
Bij het aanvinken worden de rijen zichtbaar.

Als ik de file save en daarna de file terug open doe, zijn de checkboxen welke eerder waren aangevinkt niet meer aangevinkt; het deel van de sheet is wel zichtbaar gebleven.
code van zo'n checkbox:
[Private Sub cbaftellen_Click()
If cbaftellen Then

Rows("485:504").EntireRow.Hidden = False
Else

Rows("485:504").EntireRow.Hidden = True
End If
End Sub]

Hopleijk begrijp je mijn vraag beter?

Dank voor je hulp.
 
Iets duidelijker :). Omdat je geen voorbeeldje meestuurt, toch zelf maar even wat in elkaar geflanst. Je kunt de hoogte van de rijen gebruiken om de selectievakjes in te stellen. In mijn voorbeeldje heb ik een paar rijen verborgen, en van die rijen wordt het selectievakje aangevinkt bij het laden van het formulier.

Code:
Private Sub UserForm_Initialize()
Dim i As Integer
    For i = 1 To 10
        If Cells(i, 1).Height = 0 Then Me("CheckBox" & i).Value = True
    Next i
End Sub
Kun je waarschijnlijk wel ombouwen naar je eigen situatie :).
 
checkbox problem

Hey Octafish,

Ik stuur je hierbij excel file.
In Hoofdblad bovenaan staat een button "terug naar uit te voeren werken", om de userform met checkboxen zichtbaar te maken.

Als je delen aanvinkt, gaan die delen van hoofdblad zichtbaar worden.

Als je de file dan bewaart en daarna terug opent, zouden die delen die zichtbaar staan in hoofdblad, aangevinkt moeten blijven in de userform.
Nu zijn die reeds gevinkte checboxes terug leeg...

Dank voor uw hulp bij voorbaat.

MichelBekijk bijlage help.xlsm
 
Ik kijk er even naar! Je moet toch wat doen voor een naamgenoot :).
 
Omdat je code nogal slordig was opgezet, heb ik daar ook maar even een schoningsslag op gedaan. Zo kun je de rijen met één regel verbergen of zichtbaar maken, daar waar jij een(ook nogal lelijk uitgevoerde) If Then Else gebruikte.
 

Bijlagen

Hallo,

Dank voor opschoning code.

Ik heb uw file getest. Ik zou eigenlijk net andersom willen werken: als aangevinkt zichtbaar en als niet aangevinkt onzichtbaar.
Ik ben geen VBA specialist... nooit geleerd... maar met zelfstudie....toch dingen aan de praat krijgen...

Dank bij voorbaat!!

Ik zal u eeuwig gedenken bij het vinken van de checkboxsjes!
 
Dat is een kleine aanpassing, die je zelf wel kunt maken denk ik. Je krijgt dan namelijk:
Code:
Private Sub cbaftellen_Click()
    Rows("485:504").EntireRow.Hidden = Not cbaftellen
End Sub
Het leek mij ook logischer trouwens :).
 
Dag Octa Fish,

Werkt perfect. Ik kan alleen geen start exemplaar maken met niets aangevinkt en alles hidden... TEnzij ik weer iets zal bijleren, binnen enkele ogenblikken?

Dank voor reply.

Michel
 
Plaats dit onder een knopje in uw userform
Code:
Private Sub CommandButton1_Click()
For Each Ctrl In Me.Controls
   If TypeOf Ctrl Is MSforms.CheckBox Then
     Ctrl.Value = False
   End If
 Next
End Sub
 
No problem. Komt er een knop bij waarmee je de waarden kunt resetten.
 

Bijlagen

De code onder de benoemde knop kan volgens mij gereduceerd worden tot
Code:
Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Rows("8:613").Hidden = True
End Sub

Als er over onnodige IF's gesproken wordt dan valt er denk ik ook nog wel wat aan te passen. En betere zaken zijn ook te verzinnen.

Code:
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
    cbkarton = Not Rows(8).Hidden
    cbklett = Not Rows(28).Hidden
    cbomdoos = Not Rows(48).Hidden
    cbdruk = Not Rows(55).Hidden
    cbmontage = Not Rows(75).Hidden
    cbcachstapel = Not Rows(80).Hidden
    cbcacheren = Not Rows(100).Hidden
    cbomenom = Not Rows(120).Hidden
    cbvormen = Not Rows(140).Hidden
    cbstans = Not Rows(160).Hidden
    cbuitbreek = Not Rows(180).Hidden
    cbvoorplooilijm = Not Rows(200).Hidden
    cbfasson16 = Not Rows(220).Hidden
    cbvoorplooihotmelt = Not Rows(240).Hidden
    cbhotmelt = Not Rows(260).Hidden
    cbvoorplooidzt = Not Rows(280).Hidden
    cbdztlijmen = Not Rows(300).Hidden
    cbdztaanbreg = Not Rows(320).Hidden
    cbvoorplooinieten = Not Rows(340).Hidden
    cbstikker = Not Rows(360).Hidden
    cbplooien = Not Rows(380).Hidden
    cbvoorbereidingmonteren = Not Rows(400).Hidden
    cbopzetmontage = Not Rows(420).Hidden
    cbnietenpalet = Not Rows(440).Hidden
    cbvolumepalet = Not Rows(445).Hidden
    cbvoorbereidaftel = Not Rows(465).Hidden
    cbaftellen = Not Rows(485).Hidden
    cbherverpakken = Not Rows(505).Hidden
    cbpalettenopmaat = Not Rows(525).Hidden
    cbextrasvm = Not Rows(545).Hidden
    cbextrastwintig = Not Rows(554).Hidden
    cbwarehousing = Not Rows(563).Hidden
    cbstock = Not Rows(583).Hidden
    cbtransport = Not Rows(594).Hidden
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan