• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Maximum aantal checkboxes aanvinken

Status
Niet open voor verdere reacties.

Heleen77

Gebruiker
Lid geworden
19 jan 2008
Berichten
10
Ik wil een Excelbestand maken met zo'n 100 bedrijfsnamen. Hiervoor wil ik checkboxes zetten en rondsturen naar een aantal mensen. Tot zover geen problemen.
Nou wil ik alleen dat men niet meer dan 10 checkboxes aan mag vinken (ze moeten maximaal 10 belangrijke bedrijven aan kunnen vinken). Is er een code waarmee de overige checkboxes na 10 vinkjes blokkeren?

Ik heb al zitten rommelen met gelinkte cellen. Als ik in een bepaalde kolom dan meer dan 10x "WAAR" heb staan, dan moet de lijst geblokkeerd worden. Maar hoe ik dat dan voor elkaar krijg, is mij een raadsel.

Ik hoop dat er iemand is die me kan helpen.

Alvast bedankt!

Heleen
 
Dat zal je met VBA moeten opvangen. Wanneer er 10 aijn aangevinkt (bv. de linkedcells tellen), dan zet je de eigenschap enabled van de checkboxen op false.
 
Dat zal je met VBA moeten opvangen. Wanneer er 10 aijn aangevinkt (bv. de linkedcells tellen), dan zet je de eigenschap enabled van de checkboxen op false.


Klinkt heel logisch... Maareh, hoe doe ik dat? Ik heb wel eens wat met VBA gedaan en uiteindelijk werkte het allemaal, maar ik zou niet weten wat ik in VBA moet zetten zodat dit gaat werken.
Heb je een voorbeeldje voor me?
 
Finch zei:
dan zet je de eigenschap enabled van de checkboxen op false
Dat ligt er dan wel aan wel type checkbox er is gekozen. Als die namelijk van de 'Forms' is, is het niet mogelijk om die eigenschap in te stellen (heeft tie volgens mij namelijk niet).

Heleen77, Het enige waar ik op kon komen was het 'uitvragen' van de positie van de checkbox om zo via een Offset de checkbox waarde weer op False te zetten als het maximale aantal vinkjes is bereikt.
Code:
Sub test()
Dim Positie As Range

    Set Positie = ActiveSheet.Shapes(Application.Caller).TopLeftCell
    If Range("G7").Value < 5 Then Exit Sub
    If Positie.Offset(, 2).Value = True Then Positie.Offset(, 2).Value = False
    
    MsgBox "Het maximaal aantal keuzes is bereikt!", vbOKOnly, "Helaas..."

End Sub
Het optellen van het aantal True doe je gewoon op de sheet in een aparte cel. Als je die hele kolom dan vervolgens verbergt en de rest van de sheet beveiligt (vergeet niet om de aan de checkboxen gelinkte cellen op unlocked te zetten!) zou je er mee kunnen werken.

Ik heb een klein testbestandje gemaakt om e.e.a. te verduidelijken. Hopelijk heb je er iets aan... Je kan er nog allerlei dingen aan verbeteren, maar het is maar als voorbeeld.

Groet, Leo

EDIT: O ja... Alle checkboxen moeten aan deze macro verbonden worden!
 

Bijlagen

Laatst bewerkt:
Super! Dit is wat ik bedoelde.
Hier kan ik absoluut mee aan de slag. Dankjewel!
 
Een mooie oplossing van Ginger

Je kan er nog allerlei dingen aan verbeteren

Ik heb een kleine aanpassing gedaan zodat je kunt kiezen hoeveel checkboxen je wilt aan kunnen vinken.
Code:
Sub test()
Dim Positie As Range

    Set Positie = ActiveSheet.Shapes(Application.Caller).TopLeftCell
    If Range("G7").Value <= Range("A1") Then Exit Sub
    If Positie.Offset(, 2).Value = True Then Positie.Offset(, 2).Value = False
    
    MsgBox "Het maximaal aantal keuzes van " & Range("A1") & " is bereikt!", vbOKOnly, "Helaas..."

End Sub

In cel A1 zet je hoeveel checkboxen je wilt kunnen aanvinken.
 
Is er toevallig ook nog een makkelijke manier waarop ik de checkboxes kan linken aan een cel? Het gaat om zo'n 100 rijen die ik moet voorzien van een checkbox, dus het zou makkelijk zijn als ik dat op de een of andere manier kan doorkopieren oid.

Ik dacht dat ik het had, maar toen ik een vinkje zette, waren ze allemaal gekoppeld aan 1 cel.

Het zou fijn zijn als dit kan, zodat ik niet 100x de gelinkte cel hoef in te voeren...
 
Van welk soort checkboxen wordt nu gebruik gemaakt? Die van de toolbar Forms, of de Active-X variant?
 
Popipipo zei:
Een mooie oplossing van Ginger
Dank!:o:o:cool:

Finch zei:
Van welk soort checkboxen wordt nu gebruik gemaakt?
In mijn voorbeeld maak ik gebruik van het 'Forms object'. Dus ik gok dat de TS dat ook doet.

Heleen77, Je kan deze code gebruiken om je 100 checkboxen te koppelen aan de cel waar True of False moet komen. Tevens wordt de juiste macro aan de checkbox gekoppeld (in mijn voorbeeldsheet heette deze 'test').
Code:
Sub MaakLinkCel()
Dim ch As Object

    For Each ch In ActiveSheet.CheckBoxes
        ch.LinkedCell = ch.TopLeftCell.Offset(, 2).Address
        ch.OnAction = "test"  'geef hier de naam van de macro
    Next ch

End Sub
Moet je zelf natuurlijk wel nog ff die 100 checkboxen aanmaken...:rolleyes:
TIP: Om een checkbox (of ander object) mooi in een cel te krijgen, kan je na het selecteren van dit object (= het randje er omheen) deze netjes in een hoek krijgen door voor het schuiven de Alt toets in te drukken (en ingedrukt houden). Je maakt dan de celranden 'magnetisch'... :thumb:

Groet, Leo
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan