Avatar billede sorenstrom Nybegynder
23. februar 2007 - 11:31 Der er 12 kommentarer og
1 løsning

Kopier fra Excel og sæt ind på markørs placering i aktiv Word-dok

Jeg har et område i et Excel-ark, som jeg med jævne mellemrum skal kopiere over i et åbent Word-dokument, og blot indsættes ved markørens placering.

Kan man det? Og i så fald, hvordan?

/Søren
Avatar billede svla Mester
23. februar 2007 - 14:25 #1
Marker dit område på Excelarket og klik på kopier.
Gå til dit Word dokument, sæt markøren der hvor excelområdet skal sættes ind.
I Word klikkes på <rediger> og <Indsæt special>  i boksen vælges Microsoft Office Excel-regneark-Objekt
Tryk herefter OK
Dobbeltklik på det indsatte regneark-objekt og nu kan du evt. ændre indsatte data i excelarket.
Avatar billede sorenstrom Nybegynder
23. februar 2007 - 14:39 #2
Ja, undskyld svla. Jeg burde have forklaret mig lidt nærmere, det kan jeg se nu.

Det jeg er ude efter er f.eks en makro i Excel, der automatisk markerer området, kopierer, og automatisk indsætter det kopierede på markørens placering i Word

/Søren
Avatar billede svla Mester
23. februar 2007 - 16:17 #3
Hvordan en makro som kan indsætte det kopierede i Word ser ud ved jeg ikke lige noget om, når makroen skal arbejde i to programmer
Avatar billede kabbak Professor
23. februar 2007 - 17:58 #4
Public Sub HentExcel()
  Workbooks.Open ("c:\data\minexcel.xls")' ret til din sti og fil
    Worksheets("Ark1").Range("A1:D18").Copy' Ret til dit ark og område
Selection.PasteAndFormat (wdPasteDefault)
Workbooks("minexcel.xls").Close SaveChanges:=False' ret til din excel filnavn
End Sub


Sæt denne kode i et modul i word.
Sæt reference til Microsoft Excel xx Object Library

Ret koden til til dit brug.
Avatar billede svla Mester
24. februar 2007 - 01:36 #5
Hej Kabbak!
Har set dit forslag.
Jeg tænkte kun på at makroen skulle startes fra Excel og derefter gå til Word og indsætte det som var kopieret.
Jeg tænkte ikke på at makroen skulle starte med og virke i Word, og hente et område ind fra et Excel ark.
Af interresse har jeg studeret din kode og er sikker på at det virker. - Jeg tester den selv senere. - Det er rart og se andres forslag.
Avatar billede sorenstrom Nybegynder
24. februar 2007 - 02:36 #6
Hej Kabbak
Jeg har indsat koden i det modul, og det virker faktisk OK.
Der er blot det problem, at jeg foretager nogle indtastninger i regnearket, og ud fra det, sker der en række beregninger, og disse beregninger kommer ikke med.
Jeg får kun #I/T, som du sikkert kender.

Findes der ikke en metode, som SVLA nævnte, så jeg i Excel kan aktivere en makro, der kopierer det angivne område, og indsætter det i det til enhver tid aktive Word-dokument?

/Søren
Avatar billede kabbak Professor
25. februar 2007 - 14:44 #7
I linien;
Selection.PasteAndFormat (wdPasteDefault)
kan du prøve at rette

(wdPasteDefault)

til en af de andte typer, de der findes er listet nedenunder.


Type  Required WdRecoveryType. The type of formatting to use when pasting the selected table cells.

WdRecoveryType can be one of these WdRecoveryType constants.
wdChart Pastes a Microsoft Excel chart as an embedded OLE object.
wdChartLinked Pastes an Excel chart and links it to the original Excel spreadsheet.
wdChartPicture Pastes an Excel chart as a picture.
wdFormatOriginalFormatting Preserves original formatting of the pasted material.
wdFormatPlainText Pastes as plain, unformatted text.
wdFormatSurroundingFormattingWithEmphasis Matches the formatting of the pasted text to the formatting of surrounding text.
wdListCombineWithExistingList Merges a pasted list with neighboring lists.
wdListContinueNumbering Continues numbering of a pasted list from the list in the document.
wdListRestartNumbering Restarts numbering of a pasted list.
wdSingleCellTable Pastes a single cell table as a separate table.
wdSingleCellText Pastes a single cell as text.
wdTableAppendTable Merges pasted cells into an existing table by inserting the pasted rows between the selected rows.
wdTableInsertAsRows Inserts a pasted table as rows between two rows in the target table.
wdTableOriginalFormatting Pastes an appended table without merging table styles.
wdTableOverwriteCells Pastes table cells and overwrites existing table cells.
Avatar billede kabbak Professor
25. februar 2007 - 14:45 #8
Typerne er det første ord i hver sætning.
Avatar billede svla Mester
25. februar 2007 - 17:02 #9
Jeg har testet kabbak's første forslag og rettet det lidt til måske du kan bruge det, jeg synes at det fungerer fint da jeg prøvede det.

Public Sub HentExcel()
  Application.ScreenUpdating = False
 
  Workbooks.Open ("H:\Test\Wordtest.xls") ' ret til din sti og fil
  Worksheets("Ark1").Range("E14:H26").Copy ' Ret til dit ark og område
  Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
    :=wdInLine ', DisplayAsIcon:=False
  Workbooks("Wordtest.xls").Close SaveChanges:=False ' ret til din excel filnavn
 
  Application.ScreenUpdating = True
End Sub
Avatar billede sorenstrom Nybegynder
26. februar 2007 - 09:40 #10
Hejsa. Koden virker. Jeg synes bare, det er lidt besværligt, at koden skal åbne mit regneark først, da det jo er åbnet i forvejen, men det kan måske ikke gøres anderledes. Tak for hjælpen. Smider I et svar.
/Søren
Avatar billede svla Mester
26. februar 2007 - 15:08 #11
Jeg kan desværre ikke løse problemet med og kopiere fra den åbne excelfil til word.
Kabbak har vist hjulpet mere, så giv ham point når han lægger et svar
Avatar billede kabbak Professor
26. februar 2007 - 16:34 #12
Det med en åben excel, har jeg heller ikke styr på
Avatar billede sorenstrom Nybegynder
26. februar 2007 - 19:28 #13
Mange tak for hjælpen. Nu har jeg da en løsning, der kan bruges.
Jeg vil prøve at undersøge, om ikke man kan finde den åbne Excel ved hjælp af navnet i titellinjen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester