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

Dropdown met unieke niet-lege waarden die update

  • Onderwerp starter Onderwerp starter RWE
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RWE

Nieuwe gebruiker
Lid geworden
28 apr 2011
Berichten
3
Bekijk bijlage voorbeeld dropdown.xlsx

Ik probeer een dropdown te maken met unieke niet-lege waarden die update als ik waarden toevoeg. In de bijlage heb ik een voorbeeld, in sheet 1 wordt een database dump uit SAP geplakt, waarna in sheet 2 de gegevens netjes moeten worden getoond. Dit voorbeeld is ernstig versimpeld, uiteindelijk zijn er verschillende dropdowns om uit te selecteren waarna ik alleen de gegevens toon in een tabel die voldoen aan die voorwaarden (bijvoorbeeld naam, datum, etc). Ik heb al verschillende manieren geprobeerd om dit werkend te krijgen, maar ik kom telkens met een probleem. Ik kan het wel zonder lege waarden, of met unieke waarden, of updatend, maar nooit meer dan 1 van deze. Ik ben nu al de hele dag bezig hiermee en ik heb het gehad. Ik hoop dat iemand mij hier verder mee kan helpen!
 
Zie bijlage.
De dropdown gebruikt de waarden uit de "dump" op Sheet1, niet uit Sheet2.
Er worden ook twee variabele genaamde bereiken gebruikt, namelijk "rng" en "dropdown".
Deze vind je via menu "Insert" >>Name >>Define of control/F3.
Hopelijk was dit de bedoeling van je vraag.
 

Bijlagen

Dit is inderdaad al stukken beter dan ik voor elkaar kreeg! Als ik me niet vergis is er plaats voor 20 unieke waarden nu, is dat het maximum of kan dat groter? Wat moet ik daarvoor aanpassen?
Is er een maximum aantal velden dat ik in de dump kan zetten? Ik verwacht zon 2000 rijen, wordt het dan te traag?
Bedankt!
 
Laatst bewerkt:
Het genaamde bereik "rng" past zich automatisch aan aan de grootte van de dump.
Om de "gele" lijst groter te maken, sleep je gewoon de formule in cel I20 verder naar beneden (bijvoorbeeld tot I1000 als je 1000 unieke waarden verwacht in een dump van 2000 rijen). Het bereik in de formule in J2 moet je wel evenredig aanpassen, van I2:I20 naar I2:I1000.
De formules in kolom I zijn matrixformules, hoe traag deze worden met 2000 rijen moet je gewoon eens proberen.
 
Deze methode werkte uiteindelijk toch niet helemaal. Bij 2000 waarden werkte het niet. Uiteindelijk heb ik het op de volgende manier opgelost:
In de kolom naast de kolom met de waarden heb ik de volgende formule =IF(COUNTIF($A$1:A1;A1)=1;A1;"") gezet. Deze doorgetrokken naar beneden. Hierdoor wordt in de cel de waarde van de cel links gezet indien dit de eerste keer is dat deze in de lijst staat, en anders blijft de cel leeg. Vervolgens hebben we een knop toegevoegd, daaraan hebben we de volgende macro gekoppeld:

Sub UniekeWaarden_Click()
Dim Counter_B As Integer
Dim Counter_C As Integer
Dim Range_B As Range
Dim Cell_B As Range

Counter_C = 2
Counter_B = 1

Set Range_B = ActiveSheet.Range("B1:B2000")

For Each Cell_B In Range_B
If Len(Cell_B.Value) > 0 Then
Set Cell_C = ActiveSheet.Range("C" + CStr(Counter_C))
Cell_C.Value = Cell_B.Value
Counter_C = Counter_C + 1
End If
Next Cell_B

Counter_C = Counter_C - 1

Dim Range_T As Range
Set Range_T = ActiveSheet.Range("C1:C" + CStr(Counter_C))

ActiveWorkbook.Names.Add Name:="Dropdown", RefersTo:=Range_T
End Sub

De named range Dropdown gebruiken we voor de datavalidatie dropdown. Counter C begint op 2, zodat cell C1 leeg blijft en er bovenaan 1 leeg dropdownveld is. Bedankt voor alle hulp, en hopelijk hebben mensen hier nog wat aan:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan