• 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 validatie n.a.v. @snb

  • Onderwerp starter Onderwerp starter HSV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
HSV,

Ik zit zomaar een beetje te spelen met het bestandje en stuit op een probleem, zie het bestandje.
Zelf heb ik al wat zitten proberen maar zonder resultaat.
 

Bijlagen

Als scheidingsteken wordt een spatie gebruikt. Als je ook spaties gebruikt in de namen dan gaat het niet goed. Even aanpassen
Code:
Dic(sv(i, 1))(1).Item(sv(i, 2)) = Dic(sv(i, 1))(1).Item(sv(i, 2)) & "[COLOR="#FF0000"]|[/COLOR]" & sv(i, 3)
en
Code:
ComboBox3.List = Split(Trim(Dic(ComboBox1.Value)(1)(ComboBox2.Value))[COLOR="#FF0000"], "|"[/COLOR])
 
Naar aanleiding van HSV's inbreng met een dictionary in dictionary heb ik dat uitgebreid naar een dictionary voor ieder nivo.
De gegevens komen dus uiteindelijk alleen in 'keys' van afhankelijke dictionaries terecht.

Wat opvalt is, dat het uitlezen van een dictionary in een dictionary niet helemaal gaat zoals verwacht.
Rechtstreeks verwijzen naar een item met .item("key") lukt mij niet. Met een kleine lus lukt het wel.

Merk op dat voor deze 22 dictionaries slechts 1 private object-variabele nodig is.

Deze 'dict-in-dict' methode is gekoppeld aan de derde tabel (listobject) in het werkblad.
Houd er rekening mee dat dit vanwege de validatie blijkbaar alleen maar goed werkt in Excel 2010 en hoger.
 

Bijlagen

Laatst bewerkt:
@snb,
In het laatst geplaatst bestand door mij is er nog een dictionary aan toegevoegd ....=array(sv(i,1), dictionary, dictionary)
3 dictionary's uiteindelijk.

Het inlezen uit de array gebeurt met een (1) of (2).
Het uitlezen door Dic(combobox1.value)(2) (combobox2.value & combobox3.value(1)(i) om de textboxen te vullen.

Ik zal je bestand eens doorgronden, maar het wordt wel erg lastig om het weer op te zetten.
Daar is ook weinig aan te veranderen vrees ik.
Je zal het volledig opnieuw moeten opzetten.

Overigens werkt je validatie in listobjects 2 en 3 uitstekend met Excel 2007.
De eerste is hetzelfde euvel zoals bekend.
 
@HSV

Dank voor je feedback.

Jij hebt een array met dictionaries. (ook niks mis mee)
Ik heb een dictionary met dictionaries die weer ieder een dictionary bevatten.
 
@VenA,

Hartelijk bedankt voor de oplossing, het werkt nu wel. :thumb:
 
Lekker stukje 'dictionary geweld' in dit draadje. Leuk en leer(lang)zaam:thumb:. Bibliotheek in bibliotheek en toch de juiste boeken van een stoffige zolderkamer kunnen halen.
 
Goede vraag. Wellicht een eigen draad starten ? ;)
 
Het is volgens mij wel mooi geweest zo.

Allen die gereageerd hebben wil ik bedanken.

Ik heb bereikt wat ik beoogd had; Een mooie compacte code voor werkbladvalidaties.

Ik had gedacht dat de code overal zou werken (zie #1), maar door de tip van @snb (validatie altijd leeg bij sluiten van bestand) werkt het nu zeer goed.
Die methode werkt in het bestand van #11.

Daarna kwam @VenA met het verzoek om dit voor drie comboboxen te maken (zie bestand in #20).
Dit is inclusief vijf textboxen die worden gevuld door de wijzigingen van de drie comboboxen.

Ook @snb heeft hier een bestand geplaatst met een geheel andere methode om de comboboxen te vullen (zie bestand in #23).

Voor diegenen die het in de toekomst willen gebruiken.....veel plezier ermee.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan