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.