• 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.

Excel sheets automatisch vergrendelen

Status
Niet open voor verdere reacties.

PolBE

Gebruiker
Lid geworden
12 okt 2016
Berichten
53
Beste forum;

Om een sheet te beveiligen en weer vrij te maken kan dit natuurlijk via de menubalk.
Ik gebruik echter altijd een knop die een opdracht krijgt:
Nu, heb ik gezocht naar een manier om te beveiligen zodat de gebruiker nog wel via de 'userforms' handelingen kan doen. Bijvoorbeeld cellen vullen met gegevens. De sheet zelf is dus wel beveiligd, hier cellen bewerken kan niet.
De optie die gebruikt wordt in de code "UserInterfaceOnly" is niet te kiezen via de menubalk in mijn oude Excel 2003 !!! En ook dit werkt niet als ik alle vinkjes aanduid.

Helemaal niet erg want het werkt met de code. Alleen gebeurt er iets raar. Ik beveilig met een knop en alles werkt naar behoren. Na sluiten van workbook en terug openen krijg ik foutmeldingen als ik nog maar één cel aanraak.
Als ik dan naar de menubalk ga kijken is het blad beveiligd en kan ik handmatig het blad ontgrendelen. Alles werkt dan weer normaal maar is wel niet beveiligd.
Kort gezegd werkt deze code zolang de 'werkbook' open is, na sluiten werkt het niet meer.
Met welke code kan ik dit oplossen?
Hopelijk is dit een beetje duidelijk.
Bedankt

Code:
Sheets("data").Protect Password:="123", UserInterfaceOnly:=True       
   'of
Sheets("data").Protect Password:="123", UserInterfaceOnly:=False

Nog even om te verduidelijken en klein bestandje.

Bekijk bijlage test.xls
 
Laatst bewerkt:
Hai PolBe,
ik merk zelf de fout niet. maar gebruik Excel 2010. misschien daardoor.
Heb je code iets aangepast. Je zou eventueel de knoppen vergrendel en ontgrendel kunnen verwijderen.

als je je werkblad vergrendeld dan zijn de cellen niet meer te bewerken. enzij je eerder in de opmaak van de cellen aangeeft dat je de vergrendeling uitschakelt.

dit is mijn aanpassing:
 
Longron,

Je aanpassing staat er niet bij!

Gr.

Sjon
 
Longron,

onder het Userform staat deze code, maar moet je niet eerst Unprotect gebruiken? Copy/paste foutje gok ik.

Code:
Private Sub Toevoegen_Click()
Sheets("blad1").[COLOR="#FF0000"]Protect [/COLOR]Password:="123"[COLOR="#FF0000"], UserInterfaceOnly:=True[/COLOR]

Worksheets("blad1").Range("a14").Value = Me.TextBox1.Value
Worksheets("blad1").Range("b14").Value = Me.TextBox2.Value

Sheets("blad1").Protect Password:="123", UserInterfaceOnly:=True

Me.TextBox1.Value = " "
Me.TextBox2.Value = " "
End Sub
 
Beste longron

Ik heb ondertussen mijn testprogramma geprobeerd op Excel 2007 en ook werkt het niet.
Jouw code werkt ook niet op geen van beide.

Om te testen of het werkt op jouw computer.
Neem terug test.xls die ik heb gemaakt.
Klik op de knop 'Blok' en nadien op 'Vrij' (of omgekeerd, maakt niet uit.)
Voeg iets in via het form, sla op en sluit alles.
Doe terug open en als je iets wil doen krijg je een foutmelding
Probeer met 'Vrij' ook dat werkt niet
Ga naar menu en je zal zien dat werkblad nog beveiligd is.
Als je hier manueel het paswoord ingeeft is alles vrij om te gebruiken , de bedoeling is juist om alleen het form te gebruiken. Maar bij klikken op vrij moet alles vrij zijn.

Ik weet het is een rare fout maar hopelijk is dit duidelijk
Pol
 
Vergelijk de code maar eens met wat jij tot nu toe had.
 

Bijlagen

  • test(cobbe).xls
    46,5 KB · Weergaven: 54
Vergelijk de code maar eens met wat jij tot nu toe had.

Bedankt Cobbe
Dit werkt maar als ik 'Blok' opsla, workbook sluit en terug open, heb ik terug een foutmelding. (Run-time error 1004)
Ook op Excel 2007. Spijtig maar waar, toch al bedankt voor het denkwerk
 
Dan moet je de beveiliging ook regelen in deze opdracht:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Sheets("blad1").Unprotect Password:="123"  ' Vrijmaken
   [GeselecteerdeRij] = Target.Row ' gebruikt om rij te kleuren
Sheets("blad1").Protect Password:="123", UserInterfaceOnly:=True ' Beveiligen
End Sub
 
Cobbe

Jou code werkt op voorwaarde dat ik eerst op 'Vrij" klik voor het opslaan. Programma sluit. Als ik dan open komt er geen foutmelding maar dan is sheet 'vrij'.
Als ik op 'Blok' klik, opsla en programma sluit en nadien open heb ik weer de foutmelding
Wat heb ik nu gedaan? Al lijkt me dit zo bizar, het werkt wel
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("blad1").Unprotect Password:="123"  ' Vrijmaken
End Sub
---------------------------------------------------------------------
Private Sub Workbook_Open()
Sheets("blad1").Protect Password:="123", UserInterfaceOnly:=True ' Beveiligen
End Sub

longron

Ook dit werkt niet, spijtig voor al je moeite.
De manier die ik hierboven uitleg werkt al vind ik dit toch raar om bij sluiten vrij te maken en bij openen terug te beveiligen. Allen dan werkt het !!!??!!??

Bedankt iedereen voor jullie tijd

Pol

Bekijk bijlage test(cobbe)terug.xls
 
Je slaat alles door elkaar.
Lees en leer de code eens te begrijpen, ondermeer het verschil Unprotect en Protect.
 
Vreemd. Bij mij werkt het prima. En tegen wie heeft cobble het?
 
Cobbe

Het kan misschien wel zijn dat ik het niet begrijp maar als je wat ouder wordt is dit normaal.
Toch werkt jouw code ook niet. Niet in 2003 en niet in 2007

Je moet wel degelijk Excel afsluiten en terug openen om een fout te krijgen

longron

raar dat het dan bij jou welk werkt. Hem jij nog een andere versie van Excel?
 
Ik draai 2010. Misschien is dat het. Ga vanacht nog even verder voor je kijken. Nu even pitten

Groet.
Ronald
 
Hai PolBe,

ik heb net nog even het bestand getest en werk prima. geen fout meldingen en ik heb niets ontgrendeld of vergrendeld. alleen het userfom gebruikt om in te voeren.

wat krijg je voor fout ? screendump?

groetjes

Ronald
 
Hai PolBe,

ik heb net nog even het bestand getest en werk prima. geen fout meldingen en ik heb niets ontgrendeld of vergrendeld. alleen het userfom gebruikt om in te voeren.

wat krijg je voor fout ? screendump?

groetjes

Ronald

Hey Ronald

Ik heb het voor het moment heel druk en heb niet meer de tijd gehad om hier verder naar te kijken. Ik laat binnen enkele dagen nog iets weten.
Al heb ik de indruk dat mijn oude Excel soms moeilijk doet. Ik zal toch eens moeten investeren in een nieuwe als ik mijn computer vervang.
Bedankt al voor de moeite.
Pol
 
Oké.
Is goed. Ik hoor van je als je weer tijd hebt.

Groet
Ronald
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan