[Excel] Beveiligd werkblad icm macro die regels verbergt

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Hoi,

ik heb een formulier dat we op het werk gebruiken voor inname van hardware gemaakt, en dmv een checkbox aan of uit te vinken worden delen van het werkplad getoond c.q. verborgen. Dit zijn 2 blokken die door 2 checkboxen worden bediend.

Nu wil ik het werkblad beveiligen en heb ik alle cellen die aangepast mogen worden vrij gegeven.

Als ik nu het blad beveilig kan ik in de cellen die ik mag muteren, maar als ik 1 van de checkboxen aan- of uitvink, dan krijg ik de melding:

"De cel of grafiek die u wilt wijzigen is beveiligd en heeft het kenmerk Alleen-lezen.
Als u een beveiligde cel of grafiek wilt wijzigen, verwijdert u eerst de beveiligingmet de opdracht Beveiliging opheffen (het tabblad Revisie in de groep Wijzigingen). Mogelijk wordt u gevraagd een wachtwoord in te voeren."

Maarja, dat wil ik dus niet. Ik heb vervolgens vrijwel alle cellen vrijgegeven en slechts 1 deel gelocked (dit deel verandert niet als de checkbox wordt aangevinkt of uitgevinkt en valt ook niet in de regels die worden verborgen c.q. getoond), maar dan krijg ik nog steeds dezelfde melding.

Ik vink aan: "ontgrendelde cellen selecteren" en "objecten bewerken", maar ook als ik rijen/kolommen bewerken/verwijderen/toevoegen kies, dan blijft dezelfde melding.

Kan het eigenlijk wel wat ik wil? Iemand die me een tip kan geven?

¯\_(ツ)_/¯

Beste antwoord (via M.v.Veelen op 29-01-2016 15:54)


  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 29-04 17:36
Je moet in je VBA-code eerst het werkblad unprotecten voordat je cellen kan verbergen en zichtbaar maken (ook in een macro), en daarna weer protecten. Het beste neem je daar een macro voor op met de macrorecorder, en kopieer je deze code in je VBA-macro; de commando's zijn iets van Sheets("naam").unprotect en Sheets("Naam").Protect, waarbij je voor die laatste moet aangeven wat je wil protecten.

[ Voor 36% gewijzigd door Coffeemonster op 27-01-2016 13:54 ]

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange

Alle reacties


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Kan je de checkboxen niet disablen?

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Hoe bedoel je dat? Die wil ik juist laten aanvinken of uitvinken om delen van het werkblad te tonen of te verbergen.

Edit: hey, jij hier :o ?

[ Voor 11% gewijzigd door M.v.Veelen op 26-01-2016 12:54 ]

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Oeps, verkeerd gelezen. Als je je werkblad beveiligt, wat voor opties klik je dan aan? Is er niet een optie om formatting van cellen toe te laten? Ik heb hier Excel 97, en daar bestaat de optie nog niet.

ps. ik zag je vraag inderdaad toevallig langskomen.

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Hier Excel 2010 en nee, die opties zijn er niet. Of ik zie ze niet.....

Ik beveilig het blad en vink aan: "ontgrendelde cellen selecteren" en "objecten bewerken".

Wel balen, want het werkt nu allemaal precies zoals ik wil en op het moment dat ik het wil beveiligen dan loop ik vast. Ik wil het echter niet open laten, voor je het weet is het formulier om zeep geholpen.

¯\_(ツ)_/¯


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 29-04 17:36
Je moet in je VBA-code eerst het werkblad unprotecten voordat je cellen kan verbergen en zichtbaar maken (ook in een macro), en daarna weer protecten. Het beste neem je daar een macro voor op met de macrorecorder, en kopieer je deze code in je VBA-macro; de commando's zijn iets van Sheets("naam").unprotect en Sheets("Naam").Protect, waarbij je voor die laatste moet aangeven wat je wil protecten.

[ Voor 36% gewijzigd door Coffeemonster op 27-01-2016 13:54 ]

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Kijk, dat is denk ik de oplossing. Ik kan er vrijdag pas weer mee aan de slag, maar ik denk dat dit inderdaad 'the way to go' is. Wordt vervolgd.

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

M.v.Veelen schreef op dinsdag 26 januari 2016 @ 12:41:
en dmv een checkbox aan of uit te vinken worden delen van het werkplad getoond c.q. verborgen. Dit zijn 2 blokken die door 2 checkboxen worden bediend.

Nu wil ik het werkblad beveiligen en heb ik alle cellen die aangepast mogen worden vrij gegeven.

Ik vink aan: "ontgrendelde cellen selecteren" en "objecten bewerken", maar ook als ik rijen/kolommen bewerken/verwijderen/toevoegen kies, dan blijft dezelfde melding.
Om te kunnen verbergen / tonen moet je rijen opmaken en kolommen opmaken aanvinken. 't is opmaak tenslotte. :P

Alternatief is om je blad te ontgrendelen, naar je code-editor te gaan en in het venster direct (Ctrl+G) je sheet te beveiligen dmv:
code:
1
activesheet.protect UserInterfaceOnly:=true


Voor een gebruiker is het sheet beveiligd, maar voor code niet. In je code unprotecten en aan het eind weer protecten kan wel, maar is een risico, tenzij je goede foutafhandeling toevoegt. Anders blijft na een error in je code je blad onbeveiligd achter.

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


Acties:
  • 0 Henk 'm!

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 29-04 17:36
Oeh, dat is een mooie parameter. Die krijg je natuurlijk nooit te zien als je snel een oplossing zoekt door een macro op te nemen. Die ga ik onthouden. :)

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange

Pagina: 1