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

beveiling cel aan of uit op basis van waarde andere cel

Status
Niet open voor verdere reacties.

arjoderoon

Gebruiker
Lid geworden
2 mei 2007
Berichten
476
is het mogelijk om een bepaalde cel, op basis van de waarde in een andere cel, beveiligd of niet beveiligd te laten zijn?
Ik heb bijvoorbeeld de cel a1: die is soms leeg, dan moet cel b1 beveiligd zijn. Maar als in cel A1 een waarde staat, moet cel b1 niet beveiligd zijn. is dat mogelijk?
 
MUHAHAHAHA!!!! Mijn code een klein beetje aangepast en het werkt nu als een trein. Een stuk makkelijker voor je.

Code:
'   code by J. Radjesh Klauke, Sexbierum
'   http://office.webforums.nl
'   http://radjeshklauke.deviantart.com

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Application.ScreenUpdating = False
        If Range("B1").Value <> "" Then
            Range("A1").Locked = True
            ActiveSheet.Protect
        Else
            ActiveSheet.Unprotect
            Range("A1").Locked = False
        End If
    Application.ScreenUpdating = True
End Sub

Zorg er overigens wel voor dat je in de celeigenschappen van B1 de protectie hebt uitgeschakeld. Tabblad Bescherming --> Uitvinken: "Geblokkeerd"

;)
 
Dit kan m.b.v. vba-code.
Plaats onderstaande code bij het betreffende blad.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(Range("A1")) Then
        ActiveSheet.Unprotect
        Range("b1").Locked = True
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Else
        ActiveSheet.Unprotect
        Range("b1").Locked = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End If
End Sub

Om met (on)beveiligde cellen te kunnen werken moet je het blad ook beveiligen.
 
Laatst bewerkt:
bedankt alvast. nog even een aanvullende vraag. passen de geposte macro's niet de beveiliging aan de van de rest van de sheet? Daar heb ik al het grootste gedeelte beveiligd en dat moet ook zo blijven. Dus dat dan alleen die ene cel beveiligd cq niet beveiligd is..

En ikals ik nu de beveiliging op wil heffen vraagt hij normaal om het wachtwoord, maar dat gebeurt nu niet. De beveiliging wordt er ook niet afgehaald (van de hele sheet).
 
Laatst bewerkt:
Dat kun je op een andere manier oplossen.
Wanneer wil je dat deze beveiliging er wordt afgehaald?
 
ik wil graag dat de hele sheet altijd beveiligd blijft, maar dat alleen die betreffende cel (in mijn bestand is dat cel e43) van eigenschap wijzigt, op basis van het feit of cel d43 leeg is, of dat er een waarde staat. En van eigenschap wijzigen is dan: wel of niet geblokkeerd.

Met de beveiliging van het sheet zal dat er dan voor zorgen dat in de ene situatie er in cel e43 wel iets ingevuld kan worden en in de andere situatie niet.
 
Om de beveiliging van een cel te wijzigen moet je tijdelijk de beveiliging van de sheet halen, indien wachtwoord van toepassing dan moet je dat meegeven.
Wachtwoord is hier JAN.

Code:
        ActiveSheet.Unprotect Password:="JAN"
Daarna wijzig je de beveiliging van de cel, E43 wordt hier beveiligd,
Code:
        Range("E43").Locked = True
en ze je de beveiliging van de sheet weer aan, inclusief een wachtwoord.
Code:
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="JAN"
 
Laatst bewerkt:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(Range("D43")) Then
        ActiveSheet.Unprotect Password:="DAMenB"
        Range("E43").Locked = True
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Password:="DAMenB"
    Else
        ActiveSheet.Unprotect Password:="DAMenB"
        Range("E43").Locked = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Password:="DAMenB"
    End If
End Sub

Dit is nu wat ik heb. Maar ik krijg een error:
Compileerfout: syntaxisfout

edit: ik heb de code aangepast en password naar voren gehaald. nu krijg ik geen error. Maar als cel d43 leeg is, zou cel e43 niet te selecteren moeten zijn.. maar dat is nog niet het geval...

edit 2: kan ik niet de cel zo instellen dat hij altijd locked is. dus gewoon celeigenschappen. En dat alleen als er in cel d43 iets staat, dat dan de locked eraf gehaald wordt?
 
Laatst bewerkt:
Het is niet de oplossing, maar wel kortere code:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveSheet.Unprotect Password:="DAMenB"
    Range("E43").Locked = IsEmpty(Range("D43"))
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Password:="DAMenB"
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan