Toon posts:

[Excel & WORD] hoe genereer ik automatisch een wordfile?

Pagina: 1
Acties:
  • 466 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ok, ik zit met een dringend vraagje en ik kan nergens de oplossing hiervoor vinden (als die al bestaat), ik ben geen kei in programmeren enzo maar ben ook geen leek dus een mogelijke hint is voldoende :) .

Ik ben bezig al een tijdje bezig een bedrijf op te zetten en nu ben ik aan het pogen mijn administratieve systeem te 'automatiseren' omdat ik wegens mijn studie weinig tijd heb voor de hele boekhouding reutemeteut.

Ik heb me echt rotgezocht naar enige aanwijzingen in deze richting, maar ik ben blijkbaar de enige met dit probleem of mijn zoekcapaciteiten zijn zeer slecht en in dat geval sorry.

Het gaat mij om het volgende: voor de administratie moet ik voor elke klant een factuur opmaken alle financiele transacties registreren etc. etc. (logisch tot dusver)

Nu heb ik gepland staan dat ik in principe een gecentraliseerd systeem wil opzetten in vanuit excel. Hierbij voer ik eerst een aantal simpele gegevens in zoals factuurcode (zometeen blijkt waarom), factuurdatum, clientcode en product.

Zodra ik deze gegevens heb ingevuld wil ik in de eerste instantie dat dan de informatie die behoort aan het/de verkochte product(en) automatisch wordt weergegeven in een daarvoor bestemde cell. Ook voert hij dan een aantal standaard BTW zaken in een andere cell en de boekhoudingscode die daarbij hoort.

Maar dan komt het moeilijke gedeelte, als alles dan correct staat wil ik met de druk op een knop deze data gebruiken om meerdere dingen uit te voeren:

1) ten eerste wil ik dat de de factuurgegevens automatisch in een wordbestand wordbestand worden gemerged waarbij het worddocument als bestandsnaam "<factuurcode> - <Clientcode> krijgt zonder dat ik zelf iets hoef in te voeren.

Dit is eingenlijk het belangrijkste, hij moet dan ook ook uitgeprint worden en ge e-maild, maar daar heb ik wel al wat over gelezen dus dat hoeft niet.

Nu is er nog een probleem met die vervoer naar het word-document, namelijk dat de eerste paar gegevens zoals factuurcode wel in een soort tabelletje komen te staan en letterlijk kunnen worden overgenomen. Maar ik wil dat de clientcode ook aan een bepaalde geadresseerde refereert (in het worddocument zelf) en tegelijkertijd ook naar het juiste e-mailadres stuurt. Ik ben al zover dat ik de clientcode naar een andere sheet laat refereren waar de gegevens staan. Ik zou die informatie ook weer klakkeloos kunnen overnemen voor word. maar hoe kan ik die e-mail adres gebruiken?

Ik hoop dat iemand mij kan helpen.


P.s.

Sorry GoT moderators, ik weet ik had gezegd dat ik zou helpen, maar van de dingen waar ik verstand van heb ben ik blijkbaar steeds degene met het minste verstand......... dus als ik hier alweer ;( een fout bega, mijn welgemeende excuses.

Verwijderd

Ik zie de moeilijkheid eigenlijk niet.
Je opent een instance van het word-object, roept een template aan waar je op de goede plekken de data wegschrijft.

tip:
in de template werken met bookmarks. Een bookmark (bladwijzer) kun je een naam geven. Hier kun je later een waarde invullen met VBA.

't E-mail stukje is dan ook simpel. Je leest dat adres in een var, en gebruikt word om daar de acties mee te sturen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim sjabloon
Sjabloon = "c:\temp\test.xlc"

'starten van word en gegevens plakken
Set wdApp = New Word.Application

With wdApp
    .Visible = True
    .WindowState = wdWindowStateMaximize
End With

wdApp.Documents.Open Filename:=sjabloon

With wdApp.Documents(sjabloon)
    'adresgegevens en aanhef
    .Bookmarks("bedrijfsnaam").Range.InsertBefore bedrijfsnaam
    .Bookmarks("tav").Range.InsertBefore tav
    .Bookmarks("adres").Range.InsertBefore adres
    .Bookmarks("pcwnpl").Range.InsertBefore pcwnpl
    .Bookmarks("land").Range.InsertBefore land
    .Bookmarks("tel").Range.InsertBefore tel
    .Bookmarks("fax").Range.InsertBefore fax
    .Bookmarks("aanhef").Range.InsertBefore aanhef
    .Bookmarks("naam").Range.InsertBefore naam

    'offertenummer en referentie
    .Bookmarks("offertenummer").Range.InsertBefore offertenummer


Edit: de variabelen die staan na de InsertBefore's zijn in werkelijkheid eerder gedeclareerd en voorzien van een waarde.

[ Voor 12% gewijzigd door Verwijderd op 20-02-2003 09:35 ]


Verwijderd

Topicstarter
bedankt, ik zal het proberen.
maar ik zie er niet doorheen komen dat hij het bestand automatische de naam meegeeft van een bepaalde cell. Stel cell A1 zou als value W01020304 hebben
kan ik het dan zo regelen dat het wordbestand opgeslagen zou worden als w01020304.doc?

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 01-04 14:19

Schonhose

Retro Icoon

Verwijderd schreef op 23 February 2003 @ 17:34:
bedankt, ik zal het proberen.
maar ik zie er niet doorheen komen dat hij het bestand automatische de naam meegeeft van een bepaalde cell. Stel cell A1 zou als value W01020304 hebben
kan ik het dan zo regelen dat het wordbestand opgeslagen zou worden als w01020304.doc?
Dus simpel. Voeg als laatste regel in de code van FizGiz dit toe:

Visual Basic:
1
2
ActiveDocument.SaveAs(Filename)
ActiveDocument.Close


Waarbij je Filename defineer als zijnde de waarde in cell A1.

[off-topic]
FizGiz, hoor je een with statement niet af te sluiten met end with? Dat mis ik in jouw code. :P

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005