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

afhankelijke keuzelijst met gegevensvalidatie, blokkeren na invoer

Status
Niet open voor verdere reacties.

albundy33

Gebruiker
Lid geworden
8 dec 2008
Berichten
41
Hallo,

ik zit met de volgende uitdaging. In mijn excel-bestand, heb ik een aantal rijen, waarin een keuzelijst te selecteren valt,
en 4 kolommen verder, wederom een keuzelijst, welke afhankelijk is van de geselecteerde waarde in de 1e keuzelijst.
Omdat deze gegevens gekopieerd worden naar andere bestanden, en de ingevoerde gegevens automatisch verwerkt,
is het heel belangrijk dat in keuzelijst 2 alleen een keuze geselcteerd kan zijn, die gekoppeld is aan keuzelijst 1.
Ik loop nu echter tegen het probleem op, dat mijn medewerkers in keuzelijst 1 een selectie maken, vervolgens een passende keuze uit keuzelijst 2 kiezen, en naderhand keuzelijst 1 aanpassen maar de gegevens in de lijst 2 laten staan.

Ik heb een oplossing nodig om dit onmogelijk te maken.
Of als de keuze uit lijst 1 wordt aangepast, moet de keuze uit lijst 2 automatisch worden gewist,
of nadat een keuze uit lijst 2 is gemaakt, moet lijst 1 worden geblokkeerd.

Het bestand is bijgevoegd, het gaat om cellen B28-B43 voor keuzelijst 1, en cellen I28 - I43 voor de afhankelijke keuzelijst.
Ik heb alles al geprobeerd om mijn bestand idiot-proof te maken, maar ze vinden telkens nieuwe manieren om e.e.a. te verprutsen,
en ik kom er nu echt geen wijs meer uit hoe ik dit nog kan aanpakken.
Als iemand me kan helpen, zou super zijn.
 

Bijlagen

Het was heel simpel geweest zonder die samengevoegde cellen van I:R.

Als ze kolom B veranderen wordt kolom F geleegd.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("B28:B43")) Is Nothing Then Target.Offset(, 4).ClearContents
End Sub

Maar ja, kolom B wordt ook al B:E door het samenvoegen.
 
Harry, bij mij geeft het telkens een foutmelding verwijzend naar Target.Offset(, 4).ClearContents.

Met de code zou, mits het werkt, kolom F worden gewist, maar volgens mij zou Kolom I moeten worden gewist.
 
B:E is samengevoegd, dus vanaf kolom E gerekend is het 4 naar rechts, en wordt kolom I.
Je krijgt dus de foutmelding die ik heb omschreven.
 
Wat nog wel kan door die samengevoegde cellen is:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
application.enableevents = false
 If Not Intersect(Target, Range("B28:B43")) Is Nothing Then Target.Offset(, 4)[COLOR=#0000ff].Resize(, 10)[/COLOR].ClearContents
application.enableevents = true
End Sub

Maar vroeg of laat kom je in de problemen door die samengevoegde cellen en Vba.
 
Laatst bewerkt:
Bedankt voor je reactie, ik ga eens kijken wat ik hiermee kan.
Ik weet dat het samenvoegen van cellen niet ideaal is, maar het is behoorlijk lastig om dit te vermijden in bepaalde gevallen.
 
@ HSV , ik heb de 2e code van je geprobeerd, het ziet er naar uit dat deze gewoon werkt zonder foutmeldingen?
Super bedankt in ieder geval. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan