Anteeksi jos asiaa on selvitetty täällä aiemmin, mutta:
Onko olemassa näppärää keinoa, jolla saisi halutulta Excel-riviltä tiettyjen solujen tiedot Wordiin halutuille paikoille?
Eli poimisin milloin miltäkin riviltä määrättyjen vakiosolujen tiedot vakiopaikoille Word-pohjaan.
Työkalut ovat Word ja Excel - muita ei tule.
Kiitokset!
Onko olemassa näppärää keinoa, jolla saisi halutulta Excel-riviltä tiettyjen solujen tiedot Wordiin halutuille paikoille?
Eli poimisin milloin miltäkin riviltä määrättyjen vakiosolujen tiedot vakiopaikoille Word-pohjaan.
Työkalut ovat Word ja Excel - muita ei tule.
Kiitokset!
Vastaukset 10
Vanhimmat
copy->paste special->paste link
sieltä se löytyy Wordin helpistä tarkempi kuvaus...
jos tuolleen teet...
Kiitokset, mutta tarkennan vielä hieman vajavaista kysymystäni: exceliin syötetään dataa riveille jatkuvasti. Tietyssä tilanteessa rivi tulee täyteen ja haluan siirtää riviltä muutaman solun tiedot wordiin (yhden rivin tiedot yhteen word-tiedostoon). Rivejä on paljon, mutta lukuja on niin vähän/rivi, että copy-paste on itse asiassa hankalampaa kuin kirjata ne käsin. Voisiko tätä prosessia automatisoida siten että avaan word-pohjan - ja klik - tiedot siirtyvät?
viestissä oli juuri tuo idea.
Eli jos on tietty excelin solu jonka tiedot haluat siirtää wordiin kopio se ja wordissä liitä määräten ja siellä ruksi kohtaan liitä linkki. Tällöin excelissä ko. kopiodun solun muutokset siirtyvät wordiin suoraan. Tai jos eivät ole siirtyneet heti niin valitse ko. wordin kohta, muokkaa, päivitä linkit.
Huom. Jos poistat excel tiedoston, myös linkit häviävät tietty.
Edellisen vastaajan idea oli juuri tuo. Eli kopio excelistä ne solut joiden tiedot haluat siirtää wordiin. Wordissä otat liitä määräten ja siellä ruksaa kohta linkitä. Näin exceliin tehdyt muutokset siirtyvät automaattisesti wordiin, tai jos eivät siirry wordissä valitse ko. kohta ja muokkaa, päivitä linkit.
Linkit tietysti häviävät jos poistat excel-tiedoston.
Kiitokset, mutta tämä tarkoittaisi sitä, että pitäisi olla n. 1000 Word-dokumenttia valmiina nuo linkit kopioituna. Ei oikein toimi. Eli kyseessä ei ole tietyn dokumentin ajantasalla pito vaan luominen halutulla datalla kaikkien tietojen täytyttyä. Vai ymmärsinkö asiaa vieläkään oikein (voi hyvin olla etten)? Uumoilen, että ratkaisu olisi jossain VB-skriptissä.
mutta jos sinun pitää tietyt rivit kopioida jokainen omalle word-dokumentilleen niin tota oisko työn suunnittelussa jotain vikaa - eikö siitä tule tuhat word-dokumenttia sittenkin kun kerran jokainen omalle dokumentilleen...
Ne 1000 dokumenttia tulee joka tapauksessa vuoden aikana. Nyt olisi kyse siitä, että useat eri käyttäjät voisivat mennä Exceliin, todeta tietyn rivin täyttyneeksi, painaa nappia (kielikuva) ja luoda Word-dokumentin missä on tietyt tiedot ko. riviltä. Nyt nämä henkilöt siirtävät tiedot käsin. Minä en viitsisi tehdä niitä tuhatta valmiiksi ensin, siinä kun lisääntyy myös sekoittumisriski.
Nyt lopettelen, kiitoksia neuvoista.
hyppään vasta kelkkaan mukaan, oman näkemykseni mukaan olet oikeassa suunnassa tuon vbscriptin kanssa. Koodia se tarvitsee, ei sitä millään copypastella hoideta.
Nyt kannattaisi selvittää ensin tuon Excel-tiedoston ominaisuudet ja vaatimukset.
Jos rivejä on todella tuhat, on siirrettävien tietojen sekoittumisen riski olemassa ja jos useat käyttäjät käyttävät samaa Excel-tiedostoa (verkon yli?), on sillisalaatti valmis.
Et ole ajatellut tehdä jotain simppeliä Access-kantaa hoitamaan hommaa?
Tämä kopioi aktiivisen Excel-rivin tiedot Wordiin kysymällä mm. millä nimellä Word dokumentti tallennetaan. Huomaa myös Word Objektin käyttöönotto Excelissä.
Sub KopioiRiviWordiin()
'Ota ensin makrotaulussa käyttöön Word Objekti Kirjasto komennolla Tools-References
'ja aktivoi Microsoft World Object Library
Dim wdApp As Word.Application
Dim ws As Worksheet
Dim wdDoc As Word.Document
Set wdApp = CreateObject("Word.application")
Set wdDoc = wdApp.Documents.Add
ActiveCell.EntireRow.Copy
wdDoc.Range.Paste
wdApp.ActiveDocument.Save
wdDoc.Close
Set wdDoc = Nothing
wdApp.Quit
Set wdApp = Nothing
Application.CutCopyMode = False
End Sub
Kokeilen tätä ratkaisua käytännössä, iso kiitos!