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

Cellen blokkeren na specifieke cobinatie door valideren

Status
Niet open voor verdere reacties.

wimix69

Gebruiker
Lid geworden
19 mrt 2011
Berichten
223
Hallo,

Ik wil graag dat automatische bepaalde cellen geblokeerd worden na dat ik een specifieke kleur heb geselecteerd.

Zie voorbeeld

Hoe doe je dit met een Macro?


Al vast bedankt beste allesweters :)
 

Bijlagen

Voor achter je werkblad dmv datavalidatie

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
     With Target.Offset(, 2).Resize(, 2).Validation
         If Target.Address(0, 0) = "D3" And Target.Value = "RAL 5003" Then
            .Delete
            .Add 7, 1, , "=F3=999"
            .ErrorMessage = "Cel geblokkeerd"
         Else
            .Delete
         End If
     End With
End Sub
 
Laatst bewerkt:
Als je een specifiek bereik hebt en standaard kleuren gebruikt, dan zou je ook zoiets kunnen opnemen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("F3:L102")
    Dim xRg As Range, IColor As Long
    IColor = 6
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
        Is Nothing Then
        For Each xRg In KeyCells
            If xRg.Interior.colorIndex = IColor Then
                xRg.Locked = False
            Else
                xRg.Locked = True
            End If
        Next xRg
    End If
End Sub

Je kunt ook nog ColorIndex vervangen door color en in plaats van de variabele IColor zet je de RGB code in het volgende format: RGB(0,0,0).

Dit werkt helaas niet met voorwaardelijke opmaak.
 
Zolang je het werkblad niet beveiligt, wordt de cel nooit "Locked". Aanpassen van kleuren triggert ook geen event.
Dat gebeurt dan als je later weer iets aanpast in je specifieke bereik.
 
Beide werken, Maar ik wil eigelijk dat er helemaal niet in de cellen geschreven kan worden.
 
Selecteer alle cellen en zet alles op unlocked. Daarna kun je onderstaand gebruiken

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
     With Target.Offset(, 2).Resize(, 2)
        .Parent.Unprotect
        .Locked = Target.Address(0, 0) = "D3" And Target.Value = "RAL 5003"
        .Parent.Protect
     End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan