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

Gebruik van intersect bij opgeven van een bereik

Status
Niet open voor verdere reacties.

mastajohn

Gebruiker
Lid geworden
7 okt 2009
Berichten
7
Beste excellers,

Onderstaande code werkt zoals verwacht;
- Indien in Cel $E$8 het woord "Ja" is ingevoerd wordt het bereik J8:U8 geblokkeerd en kan niets worden ingevoerd.
- Indien in Cel $E$8 alles behalve het woord "Ja" wordt ingevoerd wordt het bereik J8:U8 niet geblokkeerd en is dit bereik vrij voor invoer.

M.a.w., in Cel $E$8 wordt gecontroleerd op de aanwezigheid van het woord "Ja".

Nu is het zo dat dit niet enkel dient te geschiedden in Cel $E$8 maar in het bereik $E$8:$E$40 waarbij het bijbehorende bereik al dan niet dient te worden geblokkeerd.

M.a.w. indien Cel $E$9 het woord "Ja" bevat dient het bereik J9:U9 te worden geblokkeerd, etc. etc.

Ik weet dat dit met de Intersect methode zou moete kunnen, maar ik krijg het gewoonweg niet voor elkaar.

Is er iemand die hiermee bekend is en een helpende hand zou willen uitsteken?



Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "$E$8" Then
Worksheets("Maandag").Unprotect Password:="ABCD"
If Target.Value = "Ja" Then
Range("J8:U8").Locked = True
Else
Range("J8:U8").Locked = False
End If
Worksheets("Maandag").Protect Password:="ABCD"
End If

End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E8:E40")) Is Nothing Then
    With Worksheets("Maandag")
        .Unprotect Password:="ABCD"
        .Range("J" & Target.Row & ":U" & Target.Row).Locked = Target = "Ja"
        .Protect Password:="ABCD"
    End With
End If

End Sub

Met vriendelijke groet,


Roncancio
 
mastajohn,

Het is gebruikelijk om te vermelden als je de vraag ook elders op een Form heb staan.
 
Beste ExcelAmateur,

ik was er niet van op de hoogte dat dit gebruikelijk is en had hier geen kwade bedoelingen bij.
Gezien ik het antwoord op mijn vraag met enige spoed nodig heb ben ik er van uitgegaan dat plaatsing op twee fora eerder een resultaat zou op leveren.

Mocht dit zich nog een keer voordoen zal ik het vanzelfsprekend bij mijn vraag vermeldden.

m.vr.gr.
John
 
Had deze nog:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E8:E40")) Is Nothing Then
        Worksheets("Maandag").Unprotect Password:="ABCD"
        If Target.Value = "Ja" Then
            Target.Offset(0, 5).Resize(, 12).Locked = True
        Else
            Target.Offset(0, 5).Resize(, 12).Locked = False
        End If
        Worksheets("Maandag").Protect Password:="ABCD"
    End If
End Sub

Vind die ...).Locked = Target = "Ja" van Roncancio veel mooier :thumb:
 
Roncancio, E v R,

beide codes getest, beide werken, uiteindelijk gekozen voor de code van Roncancio. Deze vraag is hierbij beantwoord, beiden bedankt voor de genomen moeite.

John
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan