Gegevens uit bestand importeren en apart opslaan

Status
Niet open voor verdere reacties.

molliebol

Gebruiker
Lid geworden
30 jan 2015
Berichten
6
Hallo,

Ik moet regelmatig een 500-tal gepersonaliseerde vragenlijsten in excel naar onze klanten sturen.
De klant vult zijn nummer in, en automatisch verschijnen de bijhorende klantgegevens (mbv een hidden sheet), en kan gestart worden met het invullen van de vragenlijst.
Het is een vrij omslachtig werk (en door de repetitieve handelingen verhoogt de kans op fouten...)om 500 keer dezelfde handeling uit te voeren, zijnde:
- nummer invullen in de vragenlijst
- vragenlijst beveiligen tegen bewerken
- vragenlijst opslaan in excel onder de vorm nummer_vragenlijst_periode

Mijn VBA-kennis is nog vrij beperkt, zodus slaag ik er alleen niet in om deze code te schrijven.
Hopelijk is er iemand die me even op weg kan helpen!

In bijlage voeg ik een voorbeeldje toe. Mocht de vraag niet duidelijk geformuleerd zijn, hoor ik het graag.

Alvast een grote dankjewel :-) Bekijk bijlage Lijst codes.xlsxBekijk bijlage Vragenlijst.xlsx
 
Hallo,
Ik hoop heel hard dat een expert onder jullie mij wat verder kan helpen hiermee! Ik heb dit weekend zelf de code proberen schrijven, maar ik raak er totaal niet aan uit :-(
Mocht de vraag niet duidelijk geformuleerd zijn, laat het zeker weten!
Een heel grote bedankt voor de hulp alvast!!
 
Dag molliebol !

Blijkbaar nog niet veel reacties op je vraag. Ik ben best bereid je te helpen, maar ik vrees dat ik je vraag onvoldoende begrijp. Ook de bijlagen helpen me niet echt verder. Om de violen gelijk te stemmen zal ik trachten hierna het probleem te (her)definiëren:

  • Je moet regelmatig 500 gepersonaliseerde vragenlijsten creëren en versturen.
  • Je hebt dus een bestand met de gegevens van 500 klanten.
In de veronderstelling dat de vragenlijst dezelfde vragen bevat voor iedere klant, denk ik aan het volgende scenario:

  • Model-vragenlijst opstellen (zone voor klantgegevens, vragen, zones voor de antwoorden).
  • 500 vragenlijsten genereren door, per klant, de klantgegevens te kopiëren uit het klantenbestand in de model-vragenlijst en dat te saven volgens een gepaste bestandsnaam.
Denk eens na over dit scenario. Het kan best dat je iets totaal anders voor ogen hebt. Het belangrijkste (veel belangrijker dan de vba-code) is de juiste functionele analyse. Als tijdens het opstellen van de vba-code zou blijken dat er andere zaken gewenst zijn, is dat heel vervelend omdat soms de gehele code dan verloren is.

Grtz,
MDN111.
 
Dag MDN11,

Super dat je reageert!
Hetgeen je schrijft, is correct: ik beschik over 2 verschillende bestanden:
- een standaardvragenlijst met velden voor klantgegevens, vragen en antwoorden. Deze vragenlijst is dezelfde voor alle klanten.
- een bestand met de gegevens per klant. Hierin staan de klantgegevens, zoals naam, adres, telefoon,...
In dit bestand staan eveneens de antwoorden die de klant gaf op de vorige vragenlijst. In het ideale geval worden deze antwoorden ook geïntegreerd in de vragenlijst, waarbij deze antwoorden naast de huidige in te vullen antwoorden staan.
Dit is misschien wat moeilijker te realiseren? In elk geval, zou ik al geweldig op weg geholpen zijn mocht je me willen helpen om de vragenlijsten te personaliseren.
Hopelijk is het hiermee wat duidelijker geworden?

Een grote dankjewel alvast!!
Molliebol
 
Dag Molliebol !

In bijlage een bestand met een sheet met klanten en een sheet met een model van vragenlijst. Het is uiteraard slechts een voorbeeld, want ik weet niet hoe jouw bestanden er uit zien. De macro bevat niet de meest elegante code, maar ik heb getracht om ze aanpasbaar en zo duidelijk mogelijk te maken. Aan de hand daarvan kan je de macro wel aanpassen aan jouw persoonlijke behoefte.

Grtz,
MDN111.
 

Bijlagen

Dag MDN11,

Even geveld geweest door ziekte, las nu pas je reactie. Geweldig hard bedankt, ik ga er meteen mee aan de slag!
Een heel grote dankjewel voor je hulp!!
 
Hallo MDN11,

Ik heb jouw programma laten draaien, en dat werkt perfekt, dankjewel :-)

Ik probeerde het over te zetten op mijn vragenlijst, maar het lukt me niet om het bestand op te slaan. Het loopt vast op onderstaande:

newName = cPath & "\" & "Vragenlijst-" & ThisWorkbook.Sheets("Vragenlijst") .Range(VR_Periode) & oC(r, KC_nummer) & ".xls"

De namen en dergelijke zijn correct, enig idee wat er zou kunnen mislopen, en hoe dit op te lossen?

Bedankt!

MolliebolBekijk bijlage New Microsoft Word Document.docx
 
Dag molliebol !

Het verbaast me dat het vastloopt. Ik heb de folder "D:\Vragenlijst_filled files with new data" gecreëerd op m'n computer en die naam ook gedefinieerd in de macro en bij mij blijkt het te werken. Ik merk wel een verschil tussen de code in je laatste reactie en de code in het Word-bestand. In je reactie vermeld je: Het loopt vast op onderstaande:
Code:
newName = cPath & "\" & "Vragenlijst-" & ThisWorkbook.Sheets("Vragenlijst") .Range(VR_Periode) & oC(r, KC_nummer) & ".xls"
maar in het Word-bestand staat de volgende code:
Code:
newName = cPath & "\" & "Vragenlijst-" & ThisWorkbook.Sheets("Vragenlijst") & oC(r, KC_nummer) & ".xls"

Daarin staat een fout, want ThisWorkbook.Sheets("Vragenlijst") is geen string.

Grtz,
MDN111.
 
Dag MDN111,

Inderdaad, er was een foutje geslopen in de code in het word-document...
Ik heb het getest in excel 2003 ipv 2010, en daar werkt het probleemloos! Hoera!
Nogmaals heel hard bedankt voor je hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan