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

Antwoorden van vragenlijst overzetten naar ander workbook

Status
Niet open voor verdere reacties.

HarryBee

Gebruiker
Lid geworden
8 jul 2008
Berichten
240
Hallo Experts,

Ik heb het volgende probleem:

Er is in een excel sheet een eenmalige vragenlijst van ongeveer 80 vragen gemaakt bestaande uit hoofdvragen en subvragen. De antwoorden die de geadresseerde invult staan in afzonderlijke cellen (verticaal). De antwoorden wil ik in een ander workbook plaatsen (horizontaal, elke vragenlijst een aparte regel), na het indrukken van een knop op het vragenformulier. De macro mag alleen starten als alle hoofdvragen zijn beantwoord en als het doelbestand niet geopend is. Daarnaast mag er maar eenmaal op de knop kunnen gedrukt worden. Dus de macro mag maar een maal uitgevoerd worden. Omdat het mogelijk is dat dan twee of meer keren de gegevens worden overgezet, en dat moet dus voorkomen worden. Waar ik tegen aan loop is dat de eerste rij in het doelbestand gewoon gevuld wordt. Doordat de subvragen soms zorgen voor een lege cel, gaat het dus met de tweede regel fout. Gegevens van de subvragen die dan wel gegevens bevatten, plaats hij dan op de eerste regel die leeg is. In bijgevoegde bestandjes laat ik summier zien wat de bedoeling is. Ik hoop dat iemand mij opweg kan helpen.
Alvast mijn dank.

Groet, Harry
 

Bijlagen

Zodra men op de knop drukt, worden het antwoordbestand geopend en de waardes weggeschreven.
Vervolgens wordt de knop uitgeschakeld zodat men er niet opnieuw op kan klikken.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Roncancio,

Dank je wel voor je snelle reactie. Deze oplossing is een stuk korter dan ik had bedacht en het werkt in het voorbeeld bestand goed. Waar ik nu nog mee zit is dat de antwoorden in de originele vragenlijst niet in een gelijke verdeling staan. Dus met "Step 2" wordt dus een gedeelte overgeslagen. Ik heb een lijst bijgevoegd waarin de celverwijzingen staan, waar de antwoorden zijn gezet in het originele bestand. (incl toelichting) De inhoud van deze cellen moeten alleen als waarden in de betreffende rij geplaatst worden. Ik hoop dat je me hierbij kunt helpen.

Groet, Harry
 

Bijlagen

Laatst bewerkt door een moderator:
Moet er nog wat gebeuren met de algemene informatie?
Waarom staan de subvragen steeds in andere kolommen?

Met vriendelijke groet,


Roncancio
 
Roncancio,

In de lijst die ik in mijn vorige bericht heb gezet, staan de celverwijzingen van alle gegevens die moeten worden overgezet. Daar staan ook de cellen bij van de algemene info. De volgorde van deze lijst is ook de volgorde van de kolomkoppen in het analysebestand.
Voor wat betreft de subvragen zou ik het proberen uit te leggen.

Bijvoorbeeld: Hoofdvraag 3 luidt; Hoeveel deelnemers zijn er aanwezig?. Je kunt hier een getal invullen. Zodra je dit veld wilt verlaten worden de kolommen P en Q zichtbaar. P bevat alleen een visueel verbindingslijntje (opmaak) en Q bevat een kopje met de subvraag: Welke functies nemen deel?. Q10 is de eerste antwoordcel van deze subvraag. Het antwoord kan je kiezen uit een validatie lijst. Zo ook in de cellen Q11 t/m Q30. Zodra de subvraag ingevuld is, geheel of gedeeltelijk, drukt de gebruiker op een knopje "gereed", waarna de kolommen P en Q weer verborgen worden. Zo gaat het ook met de overige vragen waar een subvraag aan vast zit. Ik hoop dat je het een beetje kan volgen.
Alvast dank voor je tijd en inzet.

Groet, Harry
 
Laatst bewerkt door een moderator:
Voor het gemak heb ik de lijst van celverwijzingen toegevoegd aan het bestand.
De code zoekt de cellen en plaats de gegeven antwoorden in de Analyse vragenlijst.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Roncancio,

Heel veel dank voor je hulp. In het testbestand werk het goed. Kan je mij misschien ook vertellen wat ik moet aanpassen in de code om het ook in de originele bestanden te laten werken?
Ik heb het path zowiezo aangepast. En de lijst met cel verwijzingen opgenomen op een nieuw blad "blad1". Tot zover gaat het goed. Bij de regel:
.Cells(lRij, vr - 12).Value = Blad1.Cells(Sheet1.Range("C" & vr), Sheet1.Range("D" & vr)).Value
, gaat het fout.Ik krijg een object fout. Nu denk ik misschien te moeilijk, maar ik kom er niet uit. Ik hoop dat je nog helpen kan. Alvast dank hiervoor.

Groet Harry
 
Laatst bewerkt door een moderator:
In Blad1 staan de verwijzingen van de vragen vanaf rij 14.
In cel D13 staat kolom en in de cel daaronder staat 14.

Omdat ik uitgegaan ben van het voorbeeld wordt de waarde van de 1e vraag weggeschreven in:
kolom 14 (rij 14 van Blad1) - 12 = 2

De volgende vraag in:
kolom 15 (rij 15 van Blad1) - 12 = 3

Het is dus waarschijnlijk dat je de 12 in onderstaande code moet aanpassen.
Code:
.Cells(lRij, vr - [COLOR="#FF0000"][B]12[/B][/COLOR]).Value = Blad1.Cells(Sheet1.Range("C" & vr), Sheet1.Range("D" & vr)).Value
Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
@HarryBee Onnodige quotes verwijderd. Wanneer je direct reageert op een reactie is het niet nodig om dat bericht te quoten. Onnodig quoten heet dat, hetgeen niet gewenst is.
 
Okee Huib, ik zal er in het vervolg op letten.

Groet, Harry
 
Laatst bewerkt door een moderator:
Roncancio,

Ik loop er op vast. Ik zal een bestandje maken wat misschien iets duidelijker weergeeft wat de bedoeling is. Tot nu toe hartelijk bedankt voor je tijd.

Groet, Harry
 
Laatst bewerkt door een moderator:
Wederom twee quotes verwijderd. Stop er nu mee.
 
Nieuw bestandje.

Roncancio,

Ik heb door tijdgebrek, de vragenformulieren laten back-uppen in een map genaamd "binnen". Als de geadresseerde nu het formulier invult en op de knop verzenden drukt, wordt het complete vragenformulier dus in die map geplaatst.
Nu is het zaak de inhoud in een analyse bestand te krijgen. In bijgesloten bestand probeer ik het een en ander uit te leggen wat de wens is. Ik hoop dat je me hiermee kan en wilt helpen. Bij voorbaat heel veel dank.

Bekijk bijlage analyseblad.xls
 
Ik kamp zelf ook met de nodige tijdgebrek...

In bijgevoegd bestand staat in blad2 de rijen met verwijzingen.
Door op de knop te drukken worden de bestanden geopend en de antwoorden weggeschreven.
In de code moet je waarschijnlijk nog het pad aanpassen naar je omgeving.

Code:
sPath = "C:\Binnen\"
Bovenstaande coderegel zorgt er voor dat in de directory Binnen van C:\ wordt gezocht.

Onderaan het scherm zie je in de statusbalk (waar normaal gereed staat) een teller meelopen zodat je kan zien hoever de macro is.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Roncancio,

Het werkt perfect. Heel veel dank voor je inzet en tijd.
Ik heb nog een aanvullende vraag.: Wat moet ik in de code wijzigen als de bladen van de vragenlijsten waar de gegevens vandaan komen, Vragen zijn genoemd?
Was al een beetje aan het proberen, maar dan gebeuren er gekke dingen. :)


Groet, Harry
 
In principe niets.
In de code ga ik er vanuit dat het werkblad waar de gegevens vandaan komen het 1e werkblad is.

Mocht je toch wat willen veranderen.
In rij 21 staat onder meer:

Code:
Workbooks(Workbooks.Count).Worksheets(1)

... dat wordt dan...

Code:
Workbooks(Workbooks.Count).Worksheets("Vragen")

Met vriendelijke groet,


Roncancio
 
Roncancio,

Je ziet het, het simpelste dingetje zie ik over het hoofd. Het werkt precies zoals ik gedacht had.
Mag ik je heel hartelijk danken voor je hulp en tijd.

Groet, Harry
 
Roncancio,

Ik kwam erachter dat ik geen verwijzing heb naar van wie de vragenlijst afkomstig is. In cel A120 op elke vragenlijst staat wel de gegevens van de gebruiker, maar die wordt automatisch aangepast als je het vragenformulier opent. Als ik dus de code laat lopen, zie ik op elke regel van het analyseblad in kolom C mijn gegevens staan. Dat is dus niet de bedoeling. Zou je mij kunnen zeggen wat ik in de code aan moet passen om de bestandsnaam van elke vragenlijst in de kolom DZ op elke regel te krijgen?
Alvast mijn dank.

Groet, Harry
 
Roncancio,

Het probleem is opgelost. Ik heb een stukje code geplakt die achteraf de inhoud van de Dir leest en plaatst in kolom A. Misschien niet zo mooie oplossing, maar het werkt wel.
Nogmaals bedankt.

Groet Harry
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan