Minulle tulee päivittäin useampi excel-raportti, jossa on yhdellä rivillä päivämäärä ja erilaisia lukuja/tekstiä eri sarakkeissa. Saisiko tämän siirtymään ns. vuosiraporttiin jollain helpommalla keinolla kuin perinteisellä copypastella käsin?
Excelistä päivittäin rivitieto toiseen exceliin
Anonyymi
4984
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 4
Vanhimmat
Siirrä data tietokantaan. josta voi tehdä kyselyjä ja raportin vaikka Exceliin.
Jos sinulle tulevat raportit on tehty aina samalle pohjalle, eikä sen täyttäjät käytä sitä selaimella, täytettävään pohjaan voi lisätä makron joka kopioi raportin avatessasi sen rivin vuosiraporttiisi. Muussa tapauksessa taitaa olla vaikea keksiä tapaa, joka olisi copy-pastea yksinkertaisempi.
Tuollainen kuulostaisi hyvälle ja mahdollista varmaankin toteuttaa, mutta ei oo makrot vahvinta alaa. Minkälainen makro osaa lisätä rivin vuosiraportin jatkoksi oikealle riville?
Raportin moduliin ThisWorkbook tulisi tämmöinen makro. Se ajetaan aina, kun raportti avataan ja tietty rivi kopioidaan vuosiraporttiin, mikäli sellainen on ja annat luvan.
Private Sub Workbook_Open()
vuosiraportti = "C:\temp\excel\vuosiraportti.xlsx"
If Dir(vuosiraportti) = "" Then Exit Sub ' Ei tehdä mitään, jos vuosiraporttia ei löydy
Set tämä = ThisWorkbook
sivu = "Sheet1" ' Raportin välilehti
vrSivu = "Sheet1" ' Vuosiraportin välilehti
vrSarake = "A" ' Vuosiraportin sarake, johon liitetään
kopioitava = "A5:G5" ' Raportista Vuosiraporttiin kopioitava alue
If MsgBox("Liitetäänkö vuosiraporttiin?", vbYesNo) = vbYes Then
On Error GoTo err:
Application.ScreenUpdating = False
Set vr = Workbooks.Open(Filename:=vuosiraportti)
With vr.Sheets(vrSivu)
' Haetaan vapaa rivi.
' Oletus: liitettävä rivin jälkeen ei ole mitään
vrRivi = .Cells(.Rows.Count, vrSarake).End(xlUp).Row 1
' Jos vuosiraportissa olisi sisältöä vielä siihen liitettävien rivien jälkeen,
' ensimmänen tällainen rivi on nimetty "muuta" ja vapaa rivi haetaan sen yläpuolelta.
' vrRivi = .Cells(.Range("muuta").Row, vrSarake).End(xlUp).Row 1
.Rows(vrRivi).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
tämä.Sheets(sivu).Range(kopioitava).Copy
.Range(vrSarake & vrRivi).PasteSpecial xlPasteValues
End With
vr.Save
vr.Close False
End If
err:
Application.ScreenUpdating = True
End Sub