Toon posts:

[Excel] Importeren Word-data in Excel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een aantal word-documenten, waarvan ik de gegevens in Excel moet bewerken.
Wat gewoon werkt is in Word alles selecteren (ctrl-A), naar Excel gaan en daar weer plakken (ctrl-V).
Dat lijkt dus heel simpel, maar het probleem is dat dat voor een redelijk aantal bestanden zal moeten en dat ik het dus wil automatiseren met macro's. Nou kan ik echter nergens vinden hoe dit gedaan kan worden en OF het uberhaupt kan. Gewone text bestanden zijn geen probleem, maar een Word document aanroepen in Excel is me nog niet gelukt. Iemand enig idee óf en zo ja hoé dit kan?
Alvast bedankt.

  • BJup
  • Registratie: Mei 2003
  • Laatst online: 31-05 22:45
Als gewone tekstbestanden geen probleem zijn, kun je de bestanden dan niet eerst omzetten naar tekstbestanden?

Verwijderd

natuurlijk kan het, maar de graad van automatisatie hangt natuurlijk af van de voorspelbaarheid van de structuur van het worddocument. het vba-skelet zal bestaan uit het instantieren van een word toepassing vanuit excel en het openen van de documenten (uit het hoofd) - vergeet niet een verwijzing te zetten naar de wordbibliotheek (microsoft word type library) via het vbe ide menu extra->verwijzingen (tools->references):
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub worddocsimporteren
dim wdApp as word.application
dim wdDoc as word.document

set wdapp=new word.application
set wddoc=wdapp.documents.open("c:\tmp\mijndoc.doc")
sheets(1).range("a1").value=wddoc.paragraphs(1).range.text
sheets(1).range("a2").value=wddoc.tables(2).cell(1,1).range.text
'enz...
wddoc.close false
set wddoc=nothing
wdapp.quit
set wdapp=nothing
end sub

Verwijderd

Topicstarter
-heretic- , dat ziet er veelbelovend uit. De structuur van de Word-documenten is altijd hetzelfde, dus dat zou het probleem niet moeten zijn. Ik ga even spelen met jouw code om dat onder de knie te krijgen. In ieder tot nu toe bedankt!

Verwijderd

Topicstarter
Helaas werkt het nog niet. Krijg een 'user-defined type not defined' al meteen in de tweede regel ('Dim wdApp As word.Application')
Helaas heb ik (nog) niet genoeg inzicht om deze 'fout' zelf te kunnen corrigeren.
Suggesties?

Verwijderd

Verwijderd schreef op dinsdag 12 april 2005 @ 12:58:
Helaas werkt het nog niet. Krijg een 'user-defined type not defined' al meteen in de tweede regel ('Dim wdApp As word.Application')
Helaas heb ik (nog) niet genoeg inzicht om deze 'fout' zelf te kunnen corrigeren.
Suggesties?
Verwijderd schreef op dinsdag 12 april 2005 @ 11:07:
vergeet niet een verwijzing te zetten naar de wordbibliotheek (microsoft word [versienummer] object library) via het vbe ide menu extra->verwijzingen (tools->references)

[ Voor 5% gewijzigd door Verwijderd op 12-04-2005 13:19 ]


Verwijderd

Topicstarter
Hmmm... die verwijzing had ik gemaakt en ging er vanuit dat die standaard daarop zou blijven staan, dat was dus niet het geval en had dat niet nogmaals gecheckt.
Nu lukt de import al wel. Is er eigenlijk een manier om behalve op paragraaf / tabel niveau een simpele soort van 'select all' te doen in het Word-Document?
(dus dat het het zelfde effect oplevert als
1 alles selecteren in Word, copy
2 in Excel gaan staan op veld A1, paste)

[ Voor 18% gewijzigd door Verwijderd op 12-04-2005 13:50 ]


Verwijderd

Verwijderd schreef op dinsdag 12 april 2005 @ 13:35:
Nu lukt de import al wel. Is er eigenlijk een manier om behalve op paragraaf / tabel niveau een simpele soort van 'select all' te doen in het Word-Document?
de voorbeeldcode was bedoeld je in de goede richting te duwen, het komt er nu gewoon op aan de rest aan te vullen. dit kan je bv. doen door de gewenste acties die je hierboven vernoemt in word met de macrorecorder op te nemen, te kijken hoe die actie dan in vba eruitziet en op welk niveau deze plaatsvindt (applicatie of documentniveau of nog ander) en deze dan overeenstemmend in je excelcode in te voegen. ik hou dan ook mijn bijdrage tot deze draad voor bekeken, tenzij je naderhand nog met zeer specifieke problemen zou komen met de code die je tot stand zal brengen.

Verwijderd

Topicstarter
OK, wist niet dat je in Word ook macro's op kon nemen.
Bedankt voor je hulp.

Verwijderd

Topicstarter
Ben inmiddels al een heel eind met het project. Wat echter nog niet goed werkt is dat als ik gewoon het Word Document open, ctrl-A, ctrl-C en plakken in Excel doe, dat ie dan de informatie 1 op 1 overneemt. 1.500 (vijftienhonderd), wordt in Excel ook 1.500 (vijftienhonderd).
Als ik precies hetzelfde doe in een macro, wordt de 1.500 in Excel ineens 1,5 (anderhalf).
Deze code gebruik ik:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub TestImport()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open("Y:\Mijn Documenten\Ventje.rtf")
wdApp.Selection.WholeStory
wdApp.Selection.Copy
Worksheets(2).Select
Range("a1").Select
'ActiveSheet.PasteSpecial Format:="HTML"
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
        False
Range("A1").Select
wdDoc.Close False
Set wdDoc = Nothing
wdApp.Quit
Set wdApp = Nothing
End Sub


Iemand die weet hoe dit opgelost kan worden??? (simpel weg alle "," door "." vervangen werkt niet, omdat 5.000 ineens 5 is geworden)

[ Voor 6% gewijzigd door Verwijderd op 19-04-2005 17:49 ]


Verwijderd

Topicstarter
Excuses voor het (iets) te snel kicken van dit bericht, maar we zitten nogal vast. Alle zogenaamde Visual Basic-"kenners" in m'n vriendenkring en op m'n werk moeten ons het antwoord schuldig blijven.
Is het dan domweg niet mogelijk om het goed te importeren????
Pagina: 1