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

Macro om Excelgegevens te exporteren naar Word?

  • Onderwerp starter Onderwerp starter TJAK
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

TJAK

Gebruiker
Lid geworden
25 aug 2005
Berichten
12
Hallo

Ik vraag me af of het volgende mogelijk is: ik zou graag door middel van een macro diverse gegevens van Excel naar Word willen exporteren, een soort veredelde copy-paste functie van diverse gegevens onder één knop dus. En dan bijvoorkeur zowel een bepaald geselecteerd gebied van een Excel-blad (wat dus in Word een tabel oplevert), als de celinhoud van bepaalde cellen.
Volgens mijn bescheiden kennis gaat dit niet met mailmerge, en volgens mij draai je dan ook de zaak om: vanuit Word roep je bepaalde gegevens op uit een Excel-bestand, terwijl ik juist vanuit Excel gegevens wil exporteren naar een Word bestand (waarbij je dus vanuit Excel Word opent en de gegevens exporteert). Ik kan me voorstellen je voor de juiste lay out van de brief (want daar gaat het om) een sjabloon maakt.

Wie o wie kan mij hierin helpen? Alvast bedankt.

Th
 
Beste Tjak,

Selecteer het gedeelte van Excel dat je in Word wilt hebben. Kopieer het, ga naar Word en kies dan via Bewerken - Plakken speciaal voor "Koppeling plakken".
Wanneer nu in Excel de cijfers aangepast worden, kun je in Word kiezen voor koppeling bijwerken om de nieuwe cijfers te zien.

Is dit wat je zoekt?

Groeten,

Richard
 
Bedankt voor de reactie. Op zich biedt dit wel mogelijkheden, maar in mijn ideaalbeeld klik je dus één keer in Excel op een button, waarna vervolgens Word wordt geopend (indien nodig), automatisch heel de zwik wordt gekopieerd, in het Word-sjabloon wordt geplakt en dat je zo een kant en klare brief hebt. Om te beginnen vraag ik me af of dit überhaupt wel mogelijk is. Als dit zo is zou ik het uiteraard graag realiseren.

Th
 
Je gaf al aan dat je een macro wilde, dus ik neem aan dat je daar redelijk mee om kan gaan.

Als je alf F11 hebt gedaan in excel kies dan bovenin voor het menu Extra en dan Verwijzingen. Zorg dat je een vinkje hebt staan bij een verwijzing naar de microsoft word library (bij mij heet ie Microsoft Word 11.0 Object Library)

Nu kan je in excel word aansturen. Hiervoor maak ik meestal variabelen aan. Je kan dus in een sub of function gewoon neerzetten:
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document

Doe vervolgens:

Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True

Om Word zichtbaar te maken. Je kan nu kiezen om of een nieuw document te openen of een al bestaande: Nieuw doe je zo
Set wrdDoc = wrdApp.Documents.Add ' create a new document
en een al bestaand document open je zo:
Set wrdDoc = wrdApp.Documents.Open("c:\test.doc")

en natuurlijk heel belangrijk hoe schrijf je je teksten weg:
With wrdDoc
.Content.Font.Name = "Courier New"
.Content.InsertAfter "Hallo hier is een oplossing,"
.Content.InsertParagraphAfter
.Content.InsertAfter "deze wordt geboden door helpmij."
end with

Vergeet niet als je klaar bent met het document zowel het bestand als de wordapplicatie te sluiten, doe je dit niet gaat er namelijk een aantal word applicaties zich in je geheugen ophopen.
wrdDoc.close
wrdApp.Quit

Succes en we horen wel wanneer je vastgelopen bent
 
Dank je, Snabbi. Dit werkt inderdaad al erg goed in de richting die ik het graag wil hebben. Ik heb wat zitten experimenteren met het kopieren van gegevens uit het Excel blad (en dus niet een in de macro gedefinieerde tekst). Dit doe ik door een aantal strings aan te maken en ze in Word te plakken met:

Eerst:
Range("H4").Select
strAdres1 = ActiveCell.Value

En dan:
.Content.InsertAfter strAdres1

Dit werkt m.i. goed. Ik kom er alleen niet uit bij het kopieren en plakken van een gebied, bijvoorbeeld Range("E18:I22"). Is dit nog te plakken in Word als een tabel? En zo ja, hoe dan?

Wederom alvast bedankt voor de moeite!
 
Goede tip. Gebruik de macro recorder. In excel kan je gewoon cellen selecteren en kopieren en zoek even op hoe je in word moet plakken. Ik heb op dit moment even geen tijd, maar zo ben ik ook achter de code die hierboven staat gekomen, een half jaartje geleden.

Overigens kan je ook al gelijk doen strAdres1 = Range("h4").value of zelfs
.content.insertAfter Range("H4").value

maar op zich maak het allemaal niet veel uit.
 
Laatst bewerkt:
Ik kom niet uit het plakken van een tabel in Word. Zover gaat mijn kennis van VBA helaas niet. En ik kan wel een macro opnemen en Word starten, maar dat laatste neemt ie niet mee op.
Daarnaast weet ik ook niet precies hoe een eventueel Word sjabloon eruit zou moeten zien (dus waar Excel z'n variabelen inzet). Zou iemand me daar misschien ook mee kunnen helpen? Zou wederom heel fijn zijn.

Th
 
Voor het wegschrijven van een hele tabel kan je bijvoorbeeld deze code gebruiken

Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document

Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Range("A1:B3").Copy
Set wrdDoc = wrdApp.Documents.Add
With wrdDoc
.Content.PasteExcelTable False, False, False
End With
wrdDoc.Close
wrdApp.Quit

Echter wat ik in je stukje lees wil je er een hele template van maken. In dat geval denk ik dat een macro niet de juiste manier is, omdat via macro's maak je geen koppelingen tussen je bestanden. Dan is het werken via mailmerge bijvoorbeeld veel beter imo.
 
Is het plannetje wat ik in gedachte heb uitvoerbaar d.m.v. mailmerge? Dus aangestuurd vanuit Excel?
 
Inderdaad, wanneer je wilt dat je wilt dat je gegevens in word mee veranderen zal je iets anders moeten doen dan een macro. Er zijn genoeg mogelijkheden. Mailmerge is een optie en ook een optie is het plakken van dingen met behoud van de link. Deze optie kan gebruikt worden met plakken speciaal (zie de post van richard)
 
Mag ik hier nog op reageren?

Ik maak een serie brieven m.b.v. mail merge en wil per brief gegevens uit meerdere records invoegen.

Ik heb een Word document met samenvoegvelden. De bron is een Excel tabel met 2 tabbladen. Het eerste tabblad (NAW) bevat NAW gegevens en een totaalbedrag en per adres een uniek volgnummer.
Het tweede tabblad (SPECS) bevat per volgnummer één tot 10 regels met specificaties: volgnummer, datum, beschrijving, bedrag.

In het Word document moet je kiezen voor één bronlocatie, dus één tabblad. Ik heb alle gegevens daarom in één tabblad (ALLES) gezet. Per volgnummer heb ik nu eerst de regel met de NAW gegevens en het totaal en daaronder de specificaties.

Het eerste veld zorgt voor één brief per volgnummer:
{SKIPIF {MERGEFIELD naam}=""}{MERGEFIELD naam}

Hoe krijg ik per brief meerdere regels met specificaties, netjes onder elkaar, in mijn Word bestand? Een eerste regel met lege velden is geen probleem (die velden zijn leeg op de NAW regel).

Ik heb een voorbeeldbestand bijgevoegd.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan