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

Als bron overeenkomt met x dan uit volgende lijst een waarde selecteren

Status
Niet open voor verdere reacties.

MrElroy

Gebruiker
Lid geworden
6 jun 2022
Berichten
6
Hallo,

Alvast bedankt voor het meedenken, ik hoop dat deze vraag nog niet gesteld is. Ik probeer hem zo goed mogelijk te omschrijven.


Voor een object moet ik een storingsformulier maken, dat object bestaat uit 7 verdiepingen, elke verdieping is onderverdeeld in ruimtenummers.


Ik heb een cel via 'gegevensvalidatie' naar de lijst met de verdiepingen verwezen, dus in deze lijst kan de storingsmelder de desbetreffende verdieping selecteren.

Maar nu wil ik graag een andere cel gebruiken om enkel naar de ruimtenummers te kijken op de betreffende verdieping, en niet alle ruimtenummers van heel het object (want zo staat het nu wel ingesteld omdat ik de kennis mis).

Met de functie 'gegevensvalidatie' heb ik de volgende verwijzingen gemaakt:

In C18 staat in 'instellingen', toestaan: 'lijst': =Blad1!$B$2:$B$10 (bestaat dus uit een lijstje met 'begane grond tot 6e verdieping'.)
In C19 staat in 'instellingen', toestaan: 'lijst': =Blad1!$B$11:$B$325 (bestaat uit alle ruimtenummers oplopend van kelder tot 6e verdieping)


Ik wil dus als men in C18 bijv. '2e verdieping' selecteert, dat in C19 enkel uit =Blad1!$B$256:$B$301 gekozen kan worden.

Alvast bedankt!

 
Laatst bewerkt:
Gebruik de zoekfunktie eens met "getrapte validatie".

Of plaats op z'n minst een voorbeeld excelbestand
 
Gebruik de zoekfunktie eens met "getrapte validatie".

Of plaats op z'n minst een voorbeeld excelbestand

Goedenavond Haije,

ik heb de file (nog niet) toegevoegd, ik ga even kijken naar de zoekfunctie welke jij omschrijft.

:thumb:
 
Laatst bewerkt:
Het gaat toch al goed voor Kelder en Begane_grond! Dat is al getrapte validatie.

Je moet er alleen voor zorgen dat je een geldige naam gebruikt voor de verdiepingen (geen spaties erin bijvoorbeeld). Maak er "verdieping_1" van of zo. Zie bijlage.
 

Bijlagen

  • verdieping (AC).xlsx
    25,8 KB · Weergaven: 27
Laatst bewerkt:
vanuit een dergelijke tabel zou ik dat doen met een naambereik en de functies, verschuiving, vergelijken en aantal.als
het naambereik koppel je dan de gegevensvalidatie

ik heb het naambereik Ruimtes genoemd en deze formule gemaakt.

Code:
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0);1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)

De functie verschuiving kan delen van een matrix tonen waarbij
de vergelijken functie de positie van de eerste rij met de gekozen etage bepaald
de aantal als functie bepaald hoe lang de lijst moet zijn dus als 1 verdieping 20 ruimtes heeft en de andere 40 ruimtes is de keuze lijst dynamisch zonder witte regels in korte lijsten.
 

Bijlagen

  • verdieping.xlsx
    27,6 KB · Weergaven: 40
Jeetje wat een reacties zeg :thumb:

Dat had ik niet zo snel verwacht, ik wilde het bestand iet wat versimpelen en had het daarom even verwijderd, maar jullie waren mij te snel af :D


Nu komt het gedeelte dat ik van de eerder genoemde methode wél begrijp hoe deze tot stand is gekomen, echter zitten hier een aantal beperkingen aan (bijv. spaties in naamvak en cijfers als eerste leesteken).
Maar dat de tweede methode gaat mij te snel af, maar zou deze wel willen beheersen :confused:

Iig. Dank voor jullie reacties! :thumb:



Hallo roeljongman,

bedankt voor je reactie, dit is precies wat ik nodig heb, met jouw idee kan ik in B18 de benamingen van de verdiepingen beginnen met een cijfer én kan ik nog steeds gebruik maken van spaties in de tekst.



Helaas begrijp ik niet precies wat je bedoelt, hoe dit tot stand is gekomen en waar je de formules/ verwijzingen of andere zaken hebt in- of doorgevoerd.


Ik merkte wel op dat de eerste regel van een verdieping niet geselecteerd kan worden in B19.

Ook heb ik door dat de ruimtenummers aangepast kunnen worden naar een ander tekst en dat dat zichtbaar wordt in B19 zodat ik de originele ruimtenummers kan toevoegen.

Maar misschien kan je me het nog een keer stap voor stap verduidelijken, maar als dit te ingewikkeld is voor iemand die minder dan de basis beheerst
;) dan hoor ik dat graag :)


Bedankt!

 
Ik had een drukke werkweek dus een wat late reactie.

Ik is inderdaad even puzzelen om deze te snappen omdat het een drietrapsraket is.

1. De formule "bouwen"
2. Die formule in een naambereik stoppen (Ruimtes)
3. Het naambereik Ruimtes invoeren in de datavalidatie als lijst.

Er zat inderdaad een schoonheidsfoutje in de formule er moet nog een -1 in bij
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)


De verschuivingsfunctie zorgt dat je vanaf 1 vaste cel door een lijst of matrix kan "navigeren" daarbij heeft die functie 5 stukjes informatie nodig.

De elementen zijn
1. de vaste cel als startpunt.
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)
in jou voorbeeld A12

2. Hoeveel rijen moet er verschoven worden vanaf cel A12
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)

Hiervoor heb ik een vergelijken formule gemaakt die zoekt op basis van de waarde in B18 naar de eerste regel waar de gekozen verdieping staat) er moet 1 rij vanaf getrokken omdat A12 rij 1 is en niet rij 0 in de formule logica moet er -1 afgetrokken worden van het aantal rijen dat naar beneden geschoven moet worden.

3. Hoeveel kolommen moet er verschoven worden vanaf A12
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)
In jou formule staan de ruimte nummers altijd 1 kolom na kolom A dus is vaste waarde 1 ingevuld.

4. Hoeveel rijen moet het bereik lang zijn
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)
Omdat het aantal rijen per etage verschilt gebruik ik daarvoor de aantal.als functie. Die telt hoe vaak de geselecteerde etage in B18 voorkomt in kolom A

5. Hoeveel rijen moet het bereik breed zijn.
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)
In jou geval is er maar 1 kolom met ruimtenummers dus is ook hier de vaste waarde 1 ingevuld


Deze formule heb ik gewoon in het werkblad opgebouwd omdat de formule bewerkbalk in het naambereik niet erg gebruiksvriendelijk is, je moet dan de hele functie door en door kennen om het te maken.
nadat ik de formule heb gebouwd heb ik deze dus gekopieerd naar het naambereik Ruimtes.
En vervolgens het naambereik Ruimtes in de datavalidatie van cel B19 gezet.

Ik vind deze formule en methode fijn om te gebruiken omdat als de ruimtes veranderen dan kun je dat gewoon aanpassen in je tabel zonder de validaties weer te moeten aanpassen naar nieuwe lengte.
hoewel het in gebouwen niet heel vaak zal wijzigen etages verdwijnen nooit en komen er ook zelden bij. Maar ruimtes worden nog wel eens samengevoegd of gesplitst.
 
Mooie uitleg, echt onwijs bedankt!

Ik had niet eerder de gelegenheid om hier even voor te zitten, maar na een dagje thuis te kunnen werken heb ik er goed naar kunnen kijken.


Na het analyseren van de formule had ik opgemerkt dat er een -1 te veel zou moeten staan, ik kon namelijk niet alle ruimtes benaderen bij de verdieping. Ik heb de laatste -1 verwijderd (paarse -1 hieronder), en nu kan ik alle ruimtes selecteren


4. Hoeveel rijen moet het bereik lang zijn
=VERSCHUIVING(Blad1!$A$12;VERGELIJKEN(Storingsregistratie!$B$18;Blad1!$A$12:$A$325;0)-1;1;AANTAL.ALS(Blad1!$A$12:$A$325;Storingsregistratie!$B$18)-1;1)

Met de formule in me hand heb ik het originele werkblad werkend gekregen.
Tot zo ver hartstikke bedankt!

Maar wellicht kan je me ook nog met het volgende helpen:

Na het invullen van B18 blijft B19 ingevuld met de laatst gekozen gegevens en komt dat dus niet overeen met de geselecteerde verdieping.
Is het mogelijk om B19 leeg te maken of naar de 1e regel te verspringen van de nieuw geselecteerde verdieping zodra regel B18 wordt aangepast?

Mocht het lukken, zou ik weer graag een uitleg mogen krijgen hoe je dat voor elkaar het gebokst!
:thumb:


 
Beste MrElroy,

Zou je een voorbeeld-sheet kunnen toevoegen, waarin het geschetste probleem zich afspeelt?
Dat maak het beantwoorden van de vraag een stuk eenvoudiger.
Nu maak je er voor ons een hele speurtocht van, waarbij het niet zeker is dat daar uit te komen is,

Groeten HansDouwe.
 
Mooie uitleg, echt onwijs bedankt!
Na het invullen van B18 blijft B19 ingevuld met de laatst gekozen gegevens en komt dat dus niet overeen met de geselecteerde verdieping.
Is het mogelijk om B19 leeg te maken of naar de 1e regel te verspringen van de nieuw geselecteerde verdieping zodra regel B18 wordt aangepast?

Cel validatie kan geen cellen leeg maken of waarschuwingen geven over foutieve waarden in andere cellen dan de cel die bewerkt wordt.
Als je cellen leeg wil gaan maken zal het vast niet alleen B19 zijn. Dat zou een klusje VBA zijn om dan alle variabele cellen leeg te maken.
Ik zie dan ook geen toegevoegde waarde om nu alleen een stukje code te maken zodat cel 19 wordt leeg gemaakt als c18 wordt gewijzigd. Dat kan wel, maar ik denk dat je een oplossing nodig hebt voor het hele formulier

Ik zie dat je formulier een storingregistratie is, feitelijk wil je dan steeds met een leeg formulier beginnen aan een storingsregistratie.
Dus mijn eerste insteek zou zijn, maak een template/sjabloon van dit formulier en begin iedere storingsregistratie vanuit het lege sjabloon.

Elke storingsmelding is weer nieuw dus moet je alles opnieuw invullen. Mogelijk wordt het gebruikt aan de telefoon als een melder belt. dan is zo'n leeg template handig en snel te openen

Als je het meer als back-office formulier gebruikt waar meerdere ontvangen meldingen voor 1 project of object achter elkaar worden ingevoerd dan kan het handig zijn om naar VBA te gaan kijken waarbij je bepaalde vaste gegevens kan vasthouden en alleen het 2e deel van het formulier leeg wordt gemaakt.

maar ik zou denk ik eerst kijken naar het gebruiken van de sheet als sjabloon en dus steeds leeg beginnen, een ingevulde melding opslaan onder een naam en dan voor de volgende weer een leeg sjabloon openen.

en pas als duidelijk dat er echt tijdwinst te behalen is door alleen een deel van het formulier leeg te halen naar de VBA oplossing te gaan kijken.
 
Hierbij een bestand met gegevens ihet verborgen werkblad 'data'.
Het bestand bevat 11 methoden om 4 afhankelijke lijsten te maken op basis van de gegevens in werkblad 'data'
Iedere methode heeft een eigen Userform en klassemodule.

De gegevens in werkblad data kun je foor je iegen geevens verbandfen, met instandhouding van de struktuur (genormaliseerde tabel).
 

Bijlagen

  • __VBA_dependent_listboxes.xlsb
    492,5 KB · Weergaven: 38
Als je cellen leeg wil gaan maken zal het vast niet alleen B19 zijn...

Ik probeerde de puntjes op de i te krijgen, het betreft in dit geval enkel B19.

Na het selecteren van een verdieping komen de ruimtenummers zichtbaar waaruit gekozen kan worden, ik dacht dat het misschien mogelijk was om B19 automatisch naar de 1e regel te verwijzen of leeg te maken zodra een andere verdieping geselecteerd wordt.

Maar, ik kan me voorstellen dat dit te veel en ingewikkeld proces is, wat voor mij in iedergeval niet is weggelegd, en waardoor dus een leeg sjabloon (iets waar ik me even in moet verdiepen hoe het werkt en wat het is) een beter alternatief is.
Anderzijds kan ik men ook even goed instrueren hoe het formulier ingevuld dient te worden en hierop waakzaam te zijn.

Dat neemt niet weg dat ik hartstikke geholpen ben met mijn eerste vraagstuk! :thumb:
 
Hierbij een bestand met gegevens ihet verborgen werkblad 'data'.
Het bestand bevat 11 methoden om 4 afhankelijke lijsten te maken op basis van de gegevens in werkblad 'data'
Iedere methode heeft een eigen Userform en klassemodule.

De gegevens in werkblad data kun je foor je iegen geevens verbandfen, met instandhouding van de struktuur (genormaliseerde tabel).

Ik weet niet wat ik hier voor me zie, maar dit is voor mij abracadabra. Toch bedankt voor het delen :D
 
snb bedoeld zoiets omgezet naar uw bestand
 

Bijlagen

  • verdieping met userform.xlsm
    40,8 KB · Weergaven: 12
Ik probeerde de puntjes op de i te krijgen, het betreft in dit geval enkel B19.

Ah ok, dat komt niet vaak voor maar dan is het een kwestie van een klein stukje code in de vba module van het werkblad
ik was bang als ik de code voor 1 cel maakte dat dan de vraag zou komen, kan dat ook voor het hele formulier..

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B18")) Is Nothing Then
    If Target.Text = "" Then Range("B19:C19").ClearContents
End If
End Sub

zie ook bijlage als je in B18 en B19 gevuld zijn en je verwijderd de waarde uit B18 dan verwijderd ook de waarde uit B19
 

Bijlagen

  • verdieping(2).xlsm
    30,8 KB · Weergaven: 8
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan