[VBA,Excel2003] checkbox unchecken

Pagina: 1
Acties:
  • 1.047 views sinds 30-01-2008
  • Reageer

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
Hoi allemaal,
na een speurtocht op GoT en Google met de trefwoorden "checkbox, unchecken, uitschakelen, visual basic, excel" etcetera, kom ik er nu echt niet meer uit, dus begin me af te vragen of het uberhaupt wel kan wat ik wil...

Ik heb een Excelsheet waarin ik een serie checkboxen heb. Ik heb ook een aantal macro's die uitstekend werken met de waarden True en False die uit de checkboxen komen.

Nu is het probleem dat wanneer een volgende user het bestand gaat gebruiken dat alle checkboxen weer op FALSE staan (dus zonder vinkje), maar dit lukt me niet.

Het mooiste zou zijn als Excel bij het afsluiten alles zou resetten, maar dat is voorzover ik weet niet mogelijk, dus ik zal een macro moeten maken die eerst alle checkboxen uncheckt, en daarna de application afsluit. Dat laatste gaat me wel lukken, maar het unchecken van die checkboxen lukt me niet...
Heb al CheckboxState geprobeerd, maar dat was de enige die ik kon vinden en daar lukte het niet mee (dat kan ook komen doordat ik hem verkeerd gebruik).

Hoop dat iemand me kan helpen, ik zal de code posten als iemand dat nodig vindt.
Alvast bedankt

iets met foto's...


  • mbaltus
  • Registratie: Augustus 2004
  • Laatst online: 09-10 15:35
Is het niet makkelijker om een macro te maken die de reset uitvoert bij het openen van het Excel bestand:

code:
1
2
3
Private Sub Workbook_Open()
    [i]code invoegen[/i]
End Sub


Volgens mij kun je een checkbox gewoon clearen door = False aan de checkbox toe te kennen.

The trouble with doing something right the first time is that nobody appreciates how difficult it is


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 12:53
als het goed is is het:
code:
1
checkbox.checked = false

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
@ dodo:
checkbox.checked=false, dat begrijp ik nog, maar hoe selecteer de checkbox die gereset moet worden, want je kan niet gewoon naar een range verwijzen ofzo...

@ mbaltus:
met Private sub Workbook_Open() wordt de macro uitgevoerd bij het opstarten van Excel, zonder iets te doen ? Of is daar een andere optie voor... In acces moest je dat met een AutoExec doen, maar dat gaat niet op in Excel voorzover ik weet ?

iets met foto's...


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Gulf_5 schreef op donderdag 15 december 2005 @ 13:29:
@ dodo:
checkbox.checked=false, dat begrijp ik nog, maar hoe selecteer de checkbox die gereset moet worden, want je kan niet gewoon naar een range verwijzen ofzo...
[...]
Die checkboxen kan je toch een naam geven?
Als de eerste checkbox bijvoorbeeld cb1 heet zou je cb1.checked = false kunnen doen (even uit het blote hoofd gedaan: niet uitgetest).

Vlinders moet je volgen, niet vangen...


  • mbaltus
  • Registratie: Augustus 2004
  • Laatst online: 09-10 15:35
In Word gebruik ik wel eens:

code:
1
2
3
Private Sub Document_New()
       [i]code[/i]
End Sub


Om bij het maken van een nieuw Word document van dat template bepaalde acties uit te voeren. In Excel werkt dit bij mij hetzelfde. Als ik bijvoorbeeld het volgende invoeg:

code:
1
2
3
4
Private Sub Workbook_Open()
    Dim a
    a = MsgBox("Test", vbOKOnly, "Test")
End Sub


Dan wordt automatisch een message box getoond, zodra ik het betreffende workbook open. Dus moet het ook mogelijk zijn om bij het openen andere acties uit te voeren (unchecken van de checkboxes).

The trouble with doing something right the first time is that nobody appreciates how difficult it is


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Om welke checkboxen gaat het eigenlijk. Die uit de toolbar Forms of Visual basic?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
uit de toolbar Forms, maar die wil ik aansturen vanuit VBA :)

iets met foto's...


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Zitten er alleen checkbox objecten in? Zo ja, dan zou je volgende code kunnen gebruiken:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim sCurrentCell As String
Dim BtM909 As Variant

Private Sub Workbook_Open()

    sCurrentCell = ActiveCell.Address

    ActiveSheet.Shapes.SelectAll
    Set sr = Selection.ShapeRange
    
    For Each BtM909 In sr
        BtM909.Select
        With Selection
            .Value = xlOff
        End With
    Next

    Range(sCurrentCell).Select

End Sub

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Was ik even vergeten: als er dus meerdere shapes in je excel-sheet zit, kan je bovenstaande aanpassen om die uitzonderingen te negeren (of als je een error krijgt door te gaan).

Ik hoop iig dat je de code niet blind gaat proberen, maar probeert te begrijpen en aan te passen naar je eigen behoeftes :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
Uiteraard :P

iets met foto's...


Acties:
  • 0 Henk 'm!

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
hmm, @ BtM909 -> ik krijg een memory error :? in de regel
code:
1
Activesheet.Shapes.SelectAll

run-time error: '7':
out of memory

iets met foto's...


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Die select op de shapes is niet nodig. :)
In de stilzwijgende veronderstelling dat er alleen checkboxjes aanwezig zijn:

Visual Basic:
1
2
3
4
    Dim objOle as OLEObject
    For Each objOle In ActiveSheet.OLEObjects
         objOle.Object.Value = false
    Next


Zijn er nog andere objecten aanwezig dan zul je een check moeten doen op de naam van het object of de dingen direct aanspreken; afaik is er geen mogelijkheid om te controleren of het oleobject een checkbox bevat.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Niesje schreef op vrijdag 16 december 2005 @ 18:36:
Die select op de shapes is niet nodig. :)
In de stilzwijgende veronderstelling dat er alleen checkboxjes aanwezig zijn:

Visual Basic:
1
2
3
4
    Dim v As objOle as OLEObject
    For Each objOle In ActiveSheet.OLEObjects
         objOle.Object.Value = True
    Next


Zijn er nog andere objecten aanwezig dan zul je een check moeten doen op de naam van het object of de dingen direct aanspreken; afaik is er geen mogelijkheid om te controleren of het oleobject een checkbox bevat.
He, da's handig, wist niet dat die forms elementen ook OLEObjects waren / zijn :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
er zijn inderdaad alleen checkboxjes aanwezig. Ik ga deze code woensdag uitproberen, dan ben ik er weer mee bezig. Ik zal jullie laten weten hoe en wat ! Tnx tot dusver iig ! :)

iets met foto's...


Acties:
  • 0 Henk 'm!

Verwijderd

Goedendag. Ik ben bezig met een keuzelijst. Door het aanvinken van een artikel kan word het artikel besteld. Maar de lijst is nu 200 regels lang. Hoe kan ik er voor zorgen dat automatisch alle vinkjes uitgezet worden, dus op " onwaar" staan?

Ik hoor graag

BVD Rosbiefislekker

Acties:
  • 0 Henk 'm!

Verwijderd

Nog een vraag, het valt mij op dat als ik de lijst op alfabet sorteer. dat de selectievakjes niet meegaan. Ja er staat wel een selectievakje, maar dat hoort bij een andere cel.

Als ik het artikel in Cel B3 aanvink, zie ik dat het artikel B5 Geel gekleurd word?


Hoe kan ik dit oplossen??
Pagina: 1