Kuinka saan siirrettyä tiedot luomastani lomakkeesta suoraan seuraavalla taulukkolehdellä olevan taulukon ensimmäiselle vapaana olevalle tyhjälle riville? Makrohan siihen pitää vääntää, mutta miten sen saa siirrettyä siihen ensimmäiseen vapaaseen riviin?
Exel - tiedon siirto lomakkeesta
JaMo
7827
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
Ohessa makro, tämä tosin edellyttää että lomakkeen tiedot ovat jo rivimuodossa (esimerkissä lomakkeen rivillä 1):
--------------------------------
Sub EtsiEnsimmäinenTyhjäRivi()
'
' Macro1 Macro
' Macro recorded 20.5.2004 by Excelit.fi
'
'
'Kopioidaan Lomake-sivun tiedot
Sheets("Lomake").Select
Range("A1:D1").Select
Selection.Copy
'Etsitään Taulukko-sivulta ensimmäinen tyhjä rivi
Sheets("Taulukko").Select
Range("A1").Select
Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
'Liitetään tiedot arvoina
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub
--------------------------------
Kiitos! Toimii hyvin, mutta...
Entäs jos lomakkeen tiedot ovat alekkain esim. soluissa D9, D11, D13, D15. Ja taulukko alkaa solusta C8.
Niin, oletin että olit jo ratkaissut että miten saat tiedot rivimuotoon, siksi en sitä makroon laittanut.
Aika helppoa on hoitaa tuo homma kaavaviittauksilla. Eli viitata kopioitavissa soluissa noihin soluihin missä tiedot ovat tyyliin solu A1 "=D9", B1 "=D11", C1 "=D13" jne...
Muitakin tapoja toki on mutta tuo on varmaankin helpoin tapa mikäli tietoja ei ole kovinkaan paljon. Mikäli haluat ettei tuo rivi näy lomakkeella niin kannattaa varmaan muotoilla solujen fontti valkoiseksi.
Tuossa makrossa tyhjää riviä etsitään taulukossa sarakkesta A alkaen riviltä 1, katso kohta Range("A1").Select. Jos haluat etsiä tyhjää riviä sarakkesta C alkaen riviltä 8 niin korjaat tuon kohdan muotoon Range("C8").Select.
tämmöinen niinkuin haluat ?
Sub kopio()
Application.ScreenUpdating = False
Sheets("taul1").Select
Range("d9,d11,d13,d15").Select
Selection.Copy
Sheets("Taul2").Select
Range("c65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
Kiitoksia!
Sainpa toimimaan, mutta tuli tehtyä vaikeamman kautta, eli kopioitua jokainen solu omaksi osakseen makroon. Eli rivejä tuli paljon. Mutta pääasia että pelittää!
Sehän toimii mutta liittää arvot sarakkeeseen, Jos ymmärsin oikein JaMo halusi ne samalle riville. PasteSpecialiin pitää lisätä Transpose:=True.
Selection.PasteSpecial Paste:=xlValues, _
Transpose:=True
huomio,pitää varmaan lukea kysymys tarkemmin vastaisuudessa. Kiitokset !