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

VBA (random) uitdaging.

Status
Niet open voor verdere reacties.

Thankyou

Terugkerende gebruiker
Lid geworden
3 mei 2009
Berichten
1.737
Ik wil een variabele vragenlijst maken.

Er zijn 2 tabbladen, op 1 daarvan (blad antwoorden) komen zo'n 1200 tot 1500 vragen te staan verdeeld onder 20 tot 30 onderwerpen (elk onderwerp heeft dus tussen de 15 tot 50 vragen) Het aantal onderwerpen en/of vragen kan per jaar vershillen.

Op het andere tabblad moet een validatielijst(?) komen (voorkeur via VBA) met de onderwerpen, de vragen (max 30) moeten dan random uit het betreffende onderwerp(en) gehaald worden. Random zodat de volgorde van de vragen altijd anders is. Ook moet het mogelijk zijn om uit alle onderwerpen te kunnen kiezen. In plaats van een validatielijst zou ook een soort pop-up scherm mogen verschijnen waarin de diverse onderwerpen aan of uitgevinkt kunnen worden, dit zou nog mooier zijn dan een validatielijst.

verder staan de vragen nog uitgebreid in het voorbeeld bestand maar mochten er nog vragen zijn hoor ik ze graag.
( Vragen beantwoorden is gemakkelijker dan ze stellen merk ik :rolleyes: )

Alvast bedankt voor de aandacht,
 

Bijlagen

Een 1ste aanzetje
Klik op de knop Genereer vragen, selecteer in het userform de onderwerpen en vul het aantal vragen per onderwerp in.
Klik op de knop Genereer vragen.
 

Bijlagen

Rudi,

Ziet er zeer veelbelovend uit. :thumb::thumb::thumb: Ik ga hier even mee verder en kom vast nog terug met vragen.
(o.a. nog of er een oplossing is voor de antwoord validatie lijst.)

Bedankt,
 
Enkele opmerkingen ==>
1)mi zal je de bereiken per onderwerp dynamisch moeten maken zodat er naar de toekomst toe vragen bij of af kunnen zonder alles handmatig te moeten aanpassen(maar dat is meer jouw pakkie an)
2) aangezien je zegt dat het aantal onderwerpen kan varieëren zou je ergens een lijst moeten aanmaken (eveneens dynamisch) zodat we het aantal aanwezige onderwerpen kunnen tellen en op het userform het overeenkomstige aantal checkboxenen labels zichtbaar/onzichtbaar kunnen maken. (Heb je al gedaan zie ik juist)
eens we dit allemaal op orde hebben kunnen we aan de antwoordlijstjes beginnen.
 
Beste Rudi,

Bereiken dynamisch maken is een automatisme geworden en uitgevoerd op alle naambereiken.
Ik heb nu 27 naambereiken aangemaakt waarvan de laatste een stuk groter (89) dan de andere (ca. 30). Hiermee moet het wel lukken.

Betreft het userform:
Kan ik dit een andere naam mee geven als USERFORM ?
Is er een beveiliging in te bouwen, 30 vragen invullen bij een onderwerp wat er maar 20 heeft?
een beveiliging dat zowel "aantal vragen per onderwerp" als minimaal 1 onderwerp ingevuld moet worden?
Is er een beveiliging in te bouwen zodat er niet meer dan 50 vragen gesteld kunnen worden?

Volgens mij zijn dat de vragen voor dit moment wel weer.

Alsnog bedankt.
Groet,
 

Bijlagen

Code bijgewerkt. Testen maar.
Nu nog de antwoordlijst :rolleyes:
 

Bijlagen

Betreft het userform:
Kan ik dit een andere naam mee geven als USERFORM ?

Ja de naam van de Userform kun je aanpassen bij de eigenschappen van de Userform de naam van het formulier bij de eigenschap Name en de titel van het formulier bij de eigenschap Caption.
 
@ Wher : Gaat absoluut de goede kant op, geeft alleen alle antwoorden uit een onderwerp op. Als ik dus 5 vragen per onderwerp heb en 10 onderwerpen zou ik dus nu een validatielijst krijgen met 300 a 500 antwoorden. Indien mogelijk (en Nee versta ik ook) alleen de antwoorden, incl. de 2e antwoorden, van de vragen die gegenreerd worden. Om het nog moeilijker te maken zou het ideaal zijn als er een maal een antwoord gekozen is deze uit de validatielijst verdwijnd. Zijn hier hulpkolommen voor nodig dan is dit geen probleem.

@ gast0224 : Gevonden en uitgeprobeerd, dank je.

@ Warm Bakkertje : Bijna perfect, Wat ik ook ingeef aan onderwerpen en aantal (bijv. 1 onderwerp, 10 vragen) komt de Error Handle boodschap tevoorschijn. Nu weet ik nog niet wat er gebeurd als ik 50 vragen opvraag op onderwerpA (die er maar 30 heeft). Ik heb op het tabblad VRAGEN 1 regel moeten toevoegen, en in VBA 1 stukje kunnen vinden wat ik het kunnen aanpassen (van B2 naar B3).

Ik werk overigens met Excel 2007, maar het zou prettig zijn als e.a. werkt in 2003/2007/2010.

Iedereen tot zover bedankt voor zijn intresse, het wordt trouwens een studiehulpmiddel voor de (vrijwillige) EHBO vereniging.

Groet,
 

Bijlagen

Oke, ik zie het probleem, een validatielijst met 300 antwoorden schiet z'n doel voorbij. Dat zal wel een totaal andere benadering vragen, denk ik.
 
Beste Rudi,

Werkt perfect, Grandioos. :d

Ik denk dat het stukje met de antwoorden nog lastiger wordt.

Groet,
 
Koel :) ik heb eens zitten denken om een Excelbestand te maken waarmee ik met vrienden en familie 'Wie is de mol' kan spelen. ik denk dat ik dan nog maar weer eens hier terug kom :)
 
Ik denk, dat als dit af is, het nuttig kan zijn in spel vorm maar ook voor onderwijs doeleinden.
 
Weer een stapje dichterbij (denk ik):D
Check validatielijsten in kolom C
 

Bijlagen

Een Fiks aantal stappen dichterbij.
Zelfs de 2e antwoorden staan er bij !


2 puntjes nog:
- de antwoorden staan nu in dezelfde volgorde als de vragen, kan dit door elkaar of in volgorde zoals ze op het tabblad ANTWOORDEN staan?
- Is het mogelijk (met formules kan het met een extra hulpkolom) om een antwoord wat gekozen is uit de validatielijst te verwijderen?

Ik wil de 2e antwoorden gaan gebruiken als afleiding, lijkt op het goede antwoord maar is het net niet.
Hierna maak ik op een apart blad een overzicht met de vragen en de gegeven antwoorden, daar waar de antwoorden niet goed zijn laat ik het door VERT.ZOEKEN in een kolom er naast zetten. Ook zet ik hier het percentage juiste antwoorden neer met eventueel nog een cijfer, afhankelijk van de "zwaarte" van de vraag.

Bedankt Rudi :thumb:
 
Beste Rudi,

Ik loop nog even tegen een kleine uitdaging aan (het laatste bestand) :
Stel, ik heb een lijst van 10 vragen die ik met de validatielijst beantwoord. Als ik dan via "Genereer vragen" weer een nieuwe lijst maakt werkt de validatielijst niet meer tot de laatst ingevulde vraag - daar onder werkt alles nog gewoon. Ik heb een poging gewaagd in het VBA gedeelte maar daar kom ik ff niet uit.

Groet,
 
Martin,
Wat betreft je laatste vraag:
probeer eens dit deel van de CommandButton1_Click code (dicht bij het einde) te vervangen
Code:
 For Counter = 1 To TextBox1.Value

vervang dit door:
Code:
For Counter = 1 To ControlsCount * TextBox1
 
@ Wher :
Dat werkte helaas niet maar tijdens het "spelen" met VBA is mij wel eens opgevallen dat de functie "Delete" Werkelijk alles weghaalt en bij de simpele dingen die ik dan wel eens met VBA doe gebruik ik dan CLearContens maar dat werkt niet (2 regels boven waar jij bedoelde) Ik vermoed dat dit stukje Alle opmaak verwijderd (vanaf de laatst gevulde rij af naar boven) en dan een nieuwe validatielijst moet aanmaken - wat hapert

Dit gaat ver boven mijn petje.

Bedankt voor het proberen, misschien nog andere tips die ik kan proberen?

Groet,
 
Nog eentje om te proberen in regel 6 van de CommandButton1_Click macro:
Code:
 With Sheets("Vragen")
    .Range("B3:[COLOR="#FF0000"]C[/COLOR]" & .Cells(Rows.Count, 2).End(xlUp).Offset(1).Row).[COLOR="#FF0000"]Clear[/COLOR]
 End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan