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

Status
Niet open voor verdere reacties.

jv345

Gebruiker
Lid geworden
25 mrt 2007
Berichten
167
Hallo,

Afhankelijk van een keuze in een bepaalde cel (bijv C1) dient er in een andere cel (E1)alleen die keuze's zichtbaar te worden die horen bij de gekozen cel C1.
Ik heb hiervoor 2 lijsten gemaakt.
Via de harde formule: = vert.zoeken(C1; naam tabblad; 3;0) werkt het wel.
Via Data/Validatie heb ik gekozen voor lijst. Daar heb ik de volgende formule ingetoetst:
=Vert.zoeken(C1; naam lijst; 3;0). Het schermpje blijft zwart dus ik doe ietts fout.

Excuses voor het inzichtelijk maken voor mijn probleem.
Voor de duidelijkheid heb ik een bestandje toegevoegd.
Wat doe ik fout?
 

Bijlagen

Hallo,

Datavalidatie is niet bedoelt om formules op los te laten.
Wat je wel kan doen is bij de lijst van Datavalidatie intoetsen: =organisatie
Vervolgens op OK klikken.

Er zit nu een lijst van organisatie in de cel waaruit de gebruiker een keuze kan maken.

Met vriendelijke groet,


Roncancio
 
Roncancio,

Bedankt voor je reactie.
Ik denk dat mijn vraag niet duidelijk genoeg is geweest. Mijn excuses.
Wat ik namelijk wil is al in vele vragen aan de orde geweest. In varianten van auto's en dergelijke. Het ligt aan mij dat ik het nog steeds niet door hebt. Sorry.
Ik heb ook de site van Finch's weblog bezocht. Hierin wordt wel degelijk gesproken over indirect/vert.zoeken en dergelijke.

Wat ik voor elkaar hoopt te krijgen is het volgende.
In mijn bestand wordt in cel B4 een organisatie-eenhed gekozen met een datavalidatie. Werkt goed.
In cel B7 wordt met vert.zoeken de codering bij de gekozen organisatie-eenheid uit B4 weergegeven. Dit werkt ook goed.
In cel C7 wil ik met de datavalidatie de BBP-nrs laten weergeven die bij de codering uit B7 horen.
Zie ook het tabblad BBP. Ik heb lijsten benoemd met de namen Orgaisatie50211, Organisatie50212 en Organisatie50213.
Volgens mij doe ik zo goed maar toch geeft het invullen van de validatielijst een foutcode.
Ik heb het gevoel dat ik er bijna bent maar toch......

Voor de volledigheid een aangepast bestand.
 

Bijlagen

Hieronder formule voor validatie:
Code:
 =ALS(B7=G1;G2:G9;ALS(B7=G11;G12:G23;ALS(B7=G25;G27:G33;"")))

Opmerking: U mag geen verwijzingen naar andere werkbladen of werkmappen gebruiken voor Gegevensvalidatie criteria.

Zie verder bijlage...
 

Bijlagen

Betse jv345 ;)

Heb eens gekeken in een snel tempo gekeken en heb het volgende voor U.

Groetjes Danny. :thumb:
 

Bijlagen

Beste Numan,

Bedankt, het werkt.
Het vreemde vind ik dat het volgens mij wel mogelijk moet zijn als de gegevens op een ander tabblad staan.
Bij het kiezen van het organisatie-onderdeel werkt dat namelijk wel.
Je moet dan volgens mij werken met lijstnamen definieren.
Wie heeft hier ervaring mee?
 
Ik hoop dat ik de vraag correct begrijp, maar is het niet voldoende in C7 bij datavalidatie > lijst volgende formule te gebruiken?:

Code:
=INDIRECT("Organisatie"&$B$7)

Moest dit niet de bedoeling zijn, dan graag wat extra verduidelijking naar de werkelijke bedoeling.

Groeten,

Finch
 
Hieronder formule voor validatie:
Code:
 =ALS(B7=G1;G2:G9;ALS(B7=G11;G12:G23;ALS(B7=G25;G27:G33;"")))

Opmerking: U mag geen verwijzingen naar andere werkbladen of werkmappen gebruiken voor Gegevensvalidatie criteria.

Zie verder bijlage...

Wat ga je doen wanneer je niet 3 bereiken hebt, maar pakweg 20?
Allemaal ALS formules nesten is dan niet aan te raden.

Nog een tip: Wanneer je met naamgeving werkt kan je bij datavalidatie > lijst wel gegevens op een andere sheet aanspreken.
 
Finch,

Je hebt de goede oplossing voor mij. Klasse.
Ik heb deze indirect en celverwijzing wel geprobeerd maar ik heb de aanhalingstekens niet gebruikt maar ' (apastrof). Hierdoor werkte het niet.
Heb ik de lijstnamen nu goed toegepast?

Als ik nu nog een niveau (bijv soort) verder wil (ik heb organisatie-Kplaats2008 en nu dan BBP) moet ik dan weer nieuwe lijsten samenstellen of kan dit dan ook met een indirect en celverwijzing.

Ik heb je webblog gelezen over validatie. Mooi stukje werk. Ik snap alleen niet helemaal hoe je een aanvulling op bijv BBP 50211 automatisch kan regelen (verschuivingen) en hoe je nu precies de vert.zoeken variant kan toepassen.

Een hoop vragen retour maar ik vind het een mooi stukje software waar ik een heleboel mogelijkheden in zie ( invulformulieren en dergelijke). Tot op een paar dagen geleden wist ik niets van datavalidatie.
Ik hoop dat je me verder wilt helpen.

Overigens de oplossingen hiervoor (met de als formule) was niet hetgeen ik zocht. Met die oplossing wordt namelijk de hele lijst weergegeven en kan de gebruiker geen keuze maken. Wel bedankt vooor het meedenken.
 
Finch,

Je hebt de goede oplossing voor mij. Klasse.
Ik heb deze indirect en celverwijzing wel geprobeerd maar ik heb de aanhalingstekens niet gebruikt maar ' (apastrof). Hierdoor werkte het niet.
Heb ik de lijstnamen nu goed toegepast?

Als ik nu nog een niveau (bijv soort) verder wil (ik heb organisatie-Kplaats2008 en nu dan BBP) moet ik dan weer nieuwe lijsten samenstellen of kan dit dan ook met een indirect en celverwijzing.

Bij een nieuw niveau dien je weer die lijsten ergens in een bereik te zetten, een naam te geven en dan te werken met de indirect functie. Gebruik wel naamgevingen die je kan reconstrueren adhv je invoer in de afhankelijke cel.
Naamgevingen kunnen nooit spaties bevatten, terwijl sommige keuzemogelijkheden dat wel doen. In dat geval kan je werken met een substitueren functien of een vert.zoeken functie. Een substitueren functie is wel performanter.

Ik heb je webblog gelezen over validatie. Mooi stukje werk. Ik snap alleen niet helemaal hoe je een aanvulling op bijv BBP 50211 automatisch kan regelen (verschuivingen) en hoe je nu precies de vert.zoeken variant kan toepassen.

Wanneer het aantal keuzemogelijkheden van een bepaalde lijst regelmatig wijzigingen ondergaat, ga je steeds het bereik in de naamgeving manueel moeten aanpassen, wanneer je bij naamgeving absolute bereiken gebruikt.
Je kan dat echter ook dynamisch maken dwz dat Excel zelf gaat "berekenen" welke cellen tot een naam behoren. De meest gebruikte methode hiervoor is de verschuiving functie (ENG: offset) te gebruiken in de naamgeving. Voor een beschrijving hoe deze juist werkt raad ik u aan het helpbestand van Excel rond deze functie na te lezen.
Dat is het verhaal van dynamische datavalidatie.
Zelf zit je met afhankelijke datavalidatie (kort gezegd, wanneer je de INDIRECT functie nodig hebt om de lijst te definiëren). Wil je dat eventueel uitbreiden naar afhankelijke dynamische datavalidatie, zal echter anders te werken moeten gaan. De indirect functie bij datavalidatie > lijst zal verhinderen dat je verschuiving functie bij de naamgeving wil werken. Vandaar dat je eigenlijk een truukje moet toepassen om het werkend te krijgen. Dat truukje bestaat er in om de verschuiving functie niet te gebruiken bij de naamgeving maar ook bij de formule van datavalidatie>lijst. Voor een concreet voorbeeld verwijs ik hierbij naar mijn blog:

http://thefinch.wordpress.com/2008/02/09/excel-dynamische-afhankelijke-datavalidatie/
(laatste paragraaf).

Wat betreft die vert.zoeken formule. Wanneer je bij afhankelijke datavalidatie op een of andere manier de naam van het correcte bereik (dus de naam van dat bereik) kan afleiden
uit de waarde van de afhankelijke cel, dien je geen vert.zoeken formule te gebruiken.
Echter wanneer dat niet mogelijk (bv. de waarde in afhankelijke cel is A, maar je dient de lijst met naam Finch te gebruiken voor de lijstmogelijkheden) is de vert.zoeken een mogelijkheid om dat probleem op te omzeilen. Je definieert dan ergens dat voor de waarde A de naam finch dient gebruikt te worden in je lijstvalidatie, en via een vert.zoeken functie op deze tabel genest binnen een indirect functie krijg je dan toch de gewenste lijstgegevens.

Een hele boterham, ik weet het, maar ik hoop één en ander verduidelijkt te hebben, en bij vragen, vraag gerust verder door. Ik klasseer het gebruik van zulke datavalidatie dan ook eerder onder gevorderd dan beginner. Maar ze is tot mooie dingen in staat om (moeilijke) lijstvalidatie te verwezelijken.

Oh ja, een laatste opmerking. Definieer de lijsten voor de naamgeving best op een aparte sheet, en liefst nog per lijst in een andere kolom. Zeker met het oog op dynamische validatie werkt dat het prettigst. Het is niet noodzakelijk, maar vaak wel het meest flexibele.
 
Beste Finch,

Bedankt voor je zeer uitvoerige beantwoording.
Ik ga je tips zeker verder uitproberen en bij vragen zal ik zeker bij je terug komen.

De vraag is beantword dus ik zal dit sluiten.

Nogmals mijn hartelijke dank.
John.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan