Het Probleem:
Ik haal een aantal gegevens uit een access tabel, deze data zou ik vervolgens netjes in een validation keuze lijstje willen zetten.
Voor gebruiker 1 ziet dit dan bijvoorbeeld als volgt uit
De plaatsen waar in mijn voorbeeld Leeg staat, staat in werkelijk heid ook niks en deze cellen zijn dus echt leeg. Maar nu zet hij deze lege cellen dus ook in me keuzelijst.
Wat heb ik geprobeerd:
Ik heb dit eerst proberen op te lossen door een vinkje te zetten bij "lege cellen negeren" in het instellingen menu van gegevensvalidatie, maar dit lijkt niet te werken.
Vervolgens dacht ik met de volgende regel in VBA
Deze lege ruimtes weg te halen, dit werkt wel maar dan krijg ik de volgende situatie:
Dit is al beter maar bij de hoeveelheid gegevens die ik heb wordt de reeks lege cellen in mijn validation list best wel lang en zie je soms de werkelijke gegevens niet meer staan, verder brengt het nog met zich mee dat je in de lijst kunt invullen wat je wilt terwijl ik enkel uit de door mij ingevoerde gegevens zou willen kiezen.
Nu dacht ik dit weer op te lossen door in VBA de reeks van de keuzelijst aan te passen aan de hoeveelheid gevulde cellen.
Bovenstaande code werkt natuurlijk alleen als het altijd een vaste reeks is, maar in mijn geval verschilt dit per gebruiker. Nu lukt het me wel te bepalen welke reeks ik moet hebben, maar het lukt niet dit mee te geven aan het RefersTo gedeelte van bovenstaande code.
Bovenstaande code mag dus schijnbaar niet onder VBA, waarbij Eindereeks een getal is.
Nu de vraag, waarom werkt het vinkje bij "Negeer lege velden" niet, en als dat dan ook niet gaat werken hoe voeg ik een variabele toe aan een string binnen VBA.
Of is er misschien een andere makkelijkere manier om dit op te lossen.
Ik haal een aantal gegevens uit een access tabel, deze data zou ik vervolgens netjes in een validation keuze lijstje willen zetten.
Voor gebruiker 1 ziet dit dan bijvoorbeeld als volgt uit
| data1 |
| Leeg |
| data2 |
| Leeg |
| data3 |
De plaatsen waar in mijn voorbeeld Leeg staat, staat in werkelijk heid ook niks en deze cellen zijn dus echt leeg. Maar nu zet hij deze lege cellen dus ook in me keuzelijst.
Wat heb ik geprobeerd:
Ik heb dit eerst proberen op te lossen door een vinkje te zetten bij "lege cellen negeren" in het instellingen menu van gegevensvalidatie, maar dit lijkt niet te werken.
Vervolgens dacht ik met de volgende regel in VBA
code:
1
| Sheets("Extra").Range("A1:A100").SpecialCells(xlCellTypeBlanks).Delete |
Deze lege ruimtes weg te halen, dit werkt wel maar dan krijg ik de volgende situatie:
| data1 |
| data2 |
| data3 |
| Leeg |
| Leeg |
Dit is al beter maar bij de hoeveelheid gegevens die ik heb wordt de reeks lege cellen in mijn validation list best wel lang en zie je soms de werkelijke gegevens niet meer staan, verder brengt het nog met zich mee dat je in de lijst kunt invullen wat je wilt terwijl ik enkel uit de door mij ingevoerde gegevens zou willen kiezen.
Nu dacht ik dit weer op te lossen door in VBA de reeks van de keuzelijst aan te passen aan de hoeveelheid gevulde cellen.
code:
1
2
| ThisWorkbook.Names.Add Name:="Keuzelijst", _
RefersTo:="=Extra!$A$2:$A$100", Visible:=True |
Bovenstaande code werkt natuurlijk alleen als het altijd een vaste reeks is, maar in mijn geval verschilt dit per gebruiker. Nu lukt het me wel te bepalen welke reeks ik moet hebben, maar het lukt niet dit mee te geven aan het RefersTo gedeelte van bovenstaande code.
code:
1
2
| Dim Var As String Var = "=Blad3!$A$2:$A$" + Eindereeks |
Bovenstaande code mag dus schijnbaar niet onder VBA, waarbij Eindereeks een getal is.
Nu de vraag, waarom werkt het vinkje bij "Negeer lege velden" niet, en als dat dan ook niet gaat werken hoe voeg ik een variabele toe aan een string binnen VBA.
Of is er misschien een andere makkelijkere manier om dit op te lossen.