• 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.
@ Wher,

Nu weet ik niet het verschil tussen Clear en ClearContents maar . . . . HET WERKT ! ( en dat is waar het om gaat )
( Het werkt na testen ook met ClearContents, het was dus de B die een C moest worden. )
Bedankt voor dit stuk, ik ga dit direct aanpassen in het bestand (tenzij Rudi een ander idee had met dit stuk, maar dat hoor ik dan wel)

( Wat mij nu pas opvalt is dat de validatielijst net zo lang is als de vragenlijst : Prachtig :d )


Bedankt,
 

Bijlagen

Laatst bewerkt:
Hallo Martin,

Leuke opdracht van je.

'Clearcontents' verwijderd waarden en formules in de cel.
'Clear' verwijderd ook de opmaak en validaties e.d.
 
Laatst bewerkt:
Tja Harry, ik was bang dat de verveling bij jullie zou toe slaan. :P

In het stukje waar WHER en ik het over hadden maakt in dit geval Clear of clearcontents niet uit, het blijft werken - hulde aan onze warme bakker hiervoor.
Ben alleen benieuwd of het volgende stuk ook lukt, de andere volgorde van de vragen en de validatielijst die steeds korter wordt doordat de reeds gekozen antwoorden weg vallen. Mocht je dus de komende uren niets te doen hebben . . . :d

Groet,
 
Ik denk dat ik zo naar bed ga, en Rudi zo aan het werk gaat, maar tussendoor even wat vragen beantwoord tijdens het rijzen en gisten van de producten. :D :D
 
Martin, ik ben je niet vergeten maar door personeelsproblemen even dik in de sh*t.
Op Contextures ben ik onderstaande tegengekomen en ik dacht in die richting verder te gaan, nl de gesorteerde antwoordenarray op het werkblad plaatsen en dan volgens de methode v/h voorbeeld de validaties aanmaken.
Bekijk het eens of je dit wat lijkt en dan kunnen we daarop eventueel verderbouwen.
 

Bijlagen

Kon het toch niet laten :p
De hulpkolommen kan je verbergen of verplaatsen (dan moet wel de macro aangepast worden).
Nog enkel de antwoorden sorteren moet toegevoegd worden.
Bekijk het eens en laat de opmerkingen maar komen.
 

Bijlagen

Laatst bewerkt:
personeelsproblemen
Ik wil wel solliciteren, maar ja : Die reistijd hè.
Kon het toch niet laten :p
Daar ben ik zeeer blij mee !
en laat de opmerkingen maar komen
Hier komen de opmerkingen:
1. Als de formule in kolom I vervangen wordt door deze:
Code:
=ALS(OF(G3="";AANTAL.ALS(Vragen!$C$3:$C$53;G3)>=1);"";5)
mits de 5 ingevuld kan worden door een uniek random nummer, laten we zeggen tussen de 1 en de . . . . ( elke rij een uniek nummer maar kris kras door elkaar, rijnummer is dus niet te gebruiken) Als dat niet kan zal ik de formule permanent in kolom I kunnen zetten en elke rij een uniek nummer mee geven, zoals nu tijdelijk in kolom F. (zie voorbeeld)

2. de formule in kolom J zou dan
Code:
=INDEX($G$3:$G$55;VERGELIJKEN(KLEINSTE($I$3:$I$55;RIJ(A1));$F$3:$F$55;0))
moeten worden. Dat de foutmelding #getal zichtbaar wordt als de validatielijst korter wordt is niet erg, ik heb de formule bij validatielijst2 aangepast. Volgens mij is dan ook het volgorde probleem opgelost, mee eens?

Betreft de beveiliging van de formules, kan er een sheet unprotect aan het begin van de formule met een wachtwoord ( bijv. Warm Bakkertje of Test ) en aan het eind weer een sheet protect? de tekstkleur zet ik wel op wit van de kolommen G, I en J zet ik wel op wit. ( Of kunnen de kolommen G, I en J ook ergens op het tabblad ANTWOORDEN komen te staan, die moet toch verborgen worden. )

Groet,
 

Bijlagen

Laatst bewerkt:
Alle antwoordlijsten verplaatst naar blad Antwoorden.
Automatische sortering toegevoegd.
Validatie aangepast.
 

Bijlagen

Beste Rudi,

Dit ziet er goed uit, ik ga hier mee stoeien en zal er nog een rapportage blad aan toe voegen. (waarschijnlijk "gewoon" formules) en zal hiermee nog een keer terug komen of er nog verbeterpunten in zitten. :d :d :d Ik ben Blij met dit resultaat :d :d :d

Groet,
 
Rudi, Martin,

Als ik in het recentste bestand meer dan 1 onderwerp kies (bijvoorbeeld 3 onderwerpen, A, B en C) en 5 (bijvoorbeeld) vragen per onderwerp, dan krijg ik netjes 15 vragen (3 X 5), maar slechts voor de eerste 5 validatie in kolom C.
Ligt dit probleem bij mij of hebben jullie dat ook?
 
gevonden:
Code:
For Counter = 1 To TextBox1.Value
verander in:
Code:
For Counter = 1 To Cells(Rows.Count, 2).End(xlUp).Row - 2

Nog een schoonheidsfoutje gevonden:

Bij het invullen van 1 onderwerp en 1 vraag krijg je nog een foutmelding.
 
@ Popipipo,

Bedankt, ik was druk aan het zoeken maar hier was ik nooit uitgekomen.

Inderdaad heb je gelijk met 1 vraag 1 onderwerp, hij geeft dan fout 13 aan en maakt de volgende regel geel: For I = 1 To UBound(sq) in private sub ValiLijst()
Bij 1 vraag en 2 onderwerpen of bij 2 vragen 1 onderwerp gaat het wel goed. Nou zal het niet zo heel vaak voorkomen dat er maar om 1 vraag gevraagd wordt, maar misschien is het nog te verhelpen ( of te blokken, een foutmelding in de trand van "te weinig vragen" )

Ik ga nu eerst een rapportage blad maken en dan het bestand weer hier neerzetten
 
Rapprtageblad gemaakt.

Het bestand begint nu absoluut de goede kant op te gaan, nu is het nog fine tunen.
Bladen ANTWOORDEN en RAPPORTAGE zullen nog verborgen moeten worden etc, lijnen op het blad vragen zullen nog opgemaakt moeten worden met VW opmaak ( cel gevuld - omlijning ) blad beveiliging ( op vragen staat hij er al, nu nog zonder wachtwoord) op de bladen etc. Bij bestand T15 ben ik er wel waarschijnlijk :)

Buiten het punt van de foutmelding bij 1 vraag en 1 onderwerp, heeft er iemand verbeterpunten in opmaak, style, formules, formules die beter via VBA kunnen etc?

Groet,
 

Bijlagen

Nou zal het niet zo heel vaak voorkomen dat er maar om 1 vraag gevraagd wordt,
Daarom zei ik ook 'schoonheidsfoutje'

Als je onderstaande (niet uitgeteste) code gebruikt is het schoonheidsfoutje denk ik ook weg.
Code:
 If TextBox1 = "" Or TextBox1 < 2 Then MsgBox "U hebt een te kleine waarde ingebracht bij aantal vragen !!!": Exit Sub
 
Zo gaat hij mi helemaal goed.
Voor wat betreft het verbergen van je bladen zou ik dit in het eigenschappenvenster van VBA voor de betreffende werkbladen wijzigen in xlVeryHidden, dan kunnen ze enkel via VBA terug zichtbaar gemaakt worden.
Als je bestand dan volledig af is kan je de VB-Editor ook beveiligen met een paswoord en dan is het voor de doorsnee XL-gebruiker wel voldoende.
 

Bijlagen

Laatst bewerkt:
Rudi,

Weer hartelijk bedankt, ik vind de opmerking bij 1 vraag en 1 onderwerp ook wel grappig.
Ik ga nu hiermee verder, ook met het verbergen van de bladen (xlveryhidden) maar "ziet" vba dan nog de verborgen info?
Als ik het blad ANTWOORDEN ook beveilig zal ik kolommen G, I en J 3:53 op onbeveiligd moeten zetten toch?

Goed, ik ga stoeien, en met eventuele vragen meld ik me weer (tips blijven altijd welkom)

Groeten en nogmaals bedankt.
 
Ik heb een aantal aanpassingen gedaan en het zoveel mogelijk gemaakt zoals het moet gaan worden.

Waar ik tegen aanliep was dat ik wel iets tegen kom om de kolom breedte automatisch aan te passen maar niet de rijhoogte, dit heb ik nu opgelost door de rijhoogte op 50 in te stellen. Het mooiste zou zij een standaard rijhoogte met een automatische aanpassing zodat de gehele vraag (of antwoord) in de betreffende cel past.

Misschien kan iemand nog mijn stukjes VBA na lopen op eventuele verbeterpunten.


Alvast weer hartelijk dank :thumb:
 

Bijlagen

Kan dat niet simpeler ?

Zie de bijlage


PS. Had je deze vraag niet beter in het VBA-deel van dit forum kunnen plaatsen ?
PS2. Ik denk dat je een vragenlijst beter kunt voorleggen aan een gebruiker in een userform dan in een werkblad.
 

Bijlagen

Laatst bewerkt:
@ snb,

Als eerste mijn excuses - mijn VBA kennis is (zeker in vergelijking met Rudi, Harry, Willem, Wher e.v.a. en jou) nihil.Het lampje is hier nog niet gaan branden.

Voor je P.S. : dit is bekend terein en hier komen veel VBA vragen voorbij, maar hierin heb je wel gelijk.
Voor je PS2 : Het werken met een userform is mij totaal onbekend (net als het grootste gedeelte van VBA overigens ), als hier een goede oplossing in te vinden is sta ik daar zeer zeker voor open.

Betreft het bijgevoegde bestand:
Je hebt veel geruimd en het is een heel stuk korter geworden.
Wel loop ik tegen een aantal "dingen" aan:

- Alle modules zijn verwijderd terwijl er nog wel knoppen zijn die hier naar verwijzen (blad Rapportage), eventueel lukt me dit wel samen met het verplicht invullen van de naam.

- Het aantal vragen wat gekozen moet worden is nu 50 uit diverse onderwerpen (geen enkel onderwerp heeft zelf 50 vragen), kan dit ook met minder? Kan ik dan volstaan om in het volgende stukje de 50 te vervangen voor 10? - CommandButton1.Visible = (50 \ Val(TextBox1.Text)) = x

- In het bestand wat je hebt bijgevoegd hebben alleen de 1e 3 vragen een validatielijst met antwoorden, antwoorden op vragen die soms niet in bij de vragen staan. Dit stukje klopt dus nog niet. Of er nou alle antwoorden staan die antwoord geven op alle vragen + de 2e (misleidende) antwoorden - zoals in het bestand van Rudi, of een keuze, naast de vraag, uit alle/gedeeltelijke antwoorden uit de zelfde groep, incl de 2e antwoorden dat maakt me niet zoveel uit, zolang het antwoord en (als het er is) het 2e (misleidende) antwoord er maar tussen staat

Pfft, VBA is moeilijk.

Resumé van wensen:
-Als het via een userform gemakkelijker te verwezelijken is, dan sta ik daar geheel voor open. Gebruikersvriendelijkheid staat voor op.
-Verplicht naam invullen voor er verder gegaan kan worden is zeer wenselijk
-Random kiezen van vragen uit onderwerpen zoals nu is goed, de vragen hoeven niet perse op volgorde van onderwerp te zijn - mag wel
De antwoorden naast de vraag mag bestaan uit alle 1e en 2e antwoorden uit de vragenlijst (zie bestand Rudi), of uit een aantal random antwoorden uit het
onderwerp zolang het 1e en 2e (als het er is) antwoord er maar bij staat. De volgorde van de vragen en de juiste antwoorden mogen niet het zelfde zijn anders
wordt het wel erg gemakkelijk.
-Een rapportage is nodig en zoals ik het voor ogen had staat in het bestand, een cijfer op basis van weging, aantal correct, fout, of niet beantwoorde vragen
alsmede met een gehele of gedeeltelijke opsomming van de aandachtspunten. Als dit ook gemakkelijker is via een userform - Prima
-Het verbergen van de betreffende (als ze met een userform nog bestaan) tabbladen is gewenst, alsmede om hier via een wachtwoord bij te kunnen.

Nou, als je hier nog wijs uit kan worden . . . .

Bedankt voor je aandacht.
Groet,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan