Osallistu kisaan Liiga ja rekkamies – 500 € palkinnot!
Excel-tiedostojen läpikäynti makron avulla?
-
h
- Jäsen
- Viestit: 47
- Liittynyt: 23.01.2004, 16:02
- Pisteitä: 14
Excel-tiedostojen läpikäynti makron avulla?
Minulla on kansioon Hutipetsit tallennettuna 100 kpl standardimuotoisia Excel-työkirjoja nimiltään: eiosuikuna0202.xls, eiosuikuna0302.xls jne.
Nyt haluaisin kätevästi ja nopeasti yhdistää näihin yksittäisiin tiedostoihin tallettamaani dataa yhteen työkirjaan. Data on aina samassa paikassa, vaikkapa soluissa A1...A10 tai vaihtoehtoisesti alueella A1…C10.
Data pitäisi myös mahdollisesti samalla transponoida, jotta sen saisi muotoon yhden asiakirjan data yhdelle riville tai sen ollessa aluemuodossa esim. kolmelle peräkkäiselle riville.
Olisi hyvä, jos koostetyökirjaan saisi mukaan myös lähdetiedostojen nimet, esim. nimi sarakkeeseen A ja data sarakkeisiin B…K.
Lähdetiedostot tulisi avata vuorotellen ja sulkea aina ennen seuraavan avaamista.
Onko ylipäätäänkään mahdollista laatia makroa tähän tarkoitukseen helpottamaan copypasteilua?
Nyt haluaisin kätevästi ja nopeasti yhdistää näihin yksittäisiin tiedostoihin tallettamaani dataa yhteen työkirjaan. Data on aina samassa paikassa, vaikkapa soluissa A1...A10 tai vaihtoehtoisesti alueella A1…C10.
Data pitäisi myös mahdollisesti samalla transponoida, jotta sen saisi muotoon yhden asiakirjan data yhdelle riville tai sen ollessa aluemuodossa esim. kolmelle peräkkäiselle riville.
Olisi hyvä, jos koostetyökirjaan saisi mukaan myös lähdetiedostojen nimet, esim. nimi sarakkeeseen A ja data sarakkeisiin B…K.
Lähdetiedostot tulisi avata vuorotellen ja sulkea aina ennen seuraavan avaamista.
Onko ylipäätäänkään mahdollista laatia makroa tähän tarkoitukseen helpottamaan copypasteilua?
- S.Mäenala
- Jäsen
- Viestit: 1190
- Liittynyt: 18.01.2011, 19:17
- Pisteitä: 3737
- Paikkakunta: Kamppi
Re: Excel-tiedostojen läpikäynti makron avulla?
Kyllä on mahdollista ja tässä saat yksinkertaisen mallin:h kirjoitti:Minulla on kansioon Hutipetsit tallennettuna 100 kpl standardimuotoisia Excel-työkirjoja nimiltään: eiosuikuna0202.xls, eiosuikuna0302.xls jne.
Nyt haluaisin kätevästi ja nopeasti yhdistää näihin yksittäisiin tiedostoihin tallettamaani dataa yhteen työkirjaan. Data on aina samassa paikassa, vaikkapa soluissa A1...A10 tai vaihtoehtoisesti alueella A1…C10.
Data pitäisi myös mahdollisesti samalla transponoida, jotta sen saisi muotoon yhden asiakirjan data yhdelle riville tai sen ollessa aluemuodossa esim. kolmelle peräkkäiselle riville.
Olisi hyvä, jos koostetyökirjaan saisi mukaan myös lähdetiedostojen nimet, esim. nimi sarakkeeseen A ja data sarakkeisiin B…K.
Lähdetiedostot tulisi avata vuorotellen ja sulkea aina ennen seuraavan avaamista.
Onko ylipäätäänkään mahdollista laatia makroa tähän tarkoitukseen helpottamaan copypasteilua?
1. Luo C -aseman juureen kansio Temp (C:\Temp) ja kopioi kaikki nuo 100 työkirjaasi sinne.
2. Avaa Excel'issä uusi tyhjä työkirja, klikkaa 2-napilla ensimmäisen välilehden nimeä (Sheet1) ja valitse View Code
(en valitettavasti tiedä mitä nämä ovat suomeksi...)
3. Kopioi koodi-ikkunaan seuraava koodi:
Koodi: Valitse kaikki
Sub MergexlFiles()
Dim SrcBook As Workbook
Dim fso As Object, f As Object, ff As Object, f1 As Object
Dim nextrow As Long
Application.ScreenUpdating = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.Getfolder("C:\Temp\")
Set ff = f.Files
For Each f1 In ff
Set SrcBook = Workbooks.Open(f1)
SrcBook.Worksheets(1).Range("A1:C10").Copy
ThisWorkbook.Worksheets(1).Activate
nextrow = Range("B1000").End(xlUp).Row + 1
Cells(nextrow, 1).Value = SrcBook.name
Range("B" & nextrow).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
SrcBook.Close
Next
Cells(2, 11).Select
Application.ScreenUpdating = True
End Sub
Siinä kaikki.
Koodi on kirjoitettu Excel 2010 -versiolla eikä mahdollisesti toimi kovin vanhalla Excel'illä.
“There are two kinds of forecasters: those who don’t know, and those who don’t know they don’t know.”
(J K Galbraith)
(J K Galbraith)
Minikommentit
-
h
- Jäsen
- Viestit: 47
- Liittynyt: 23.01.2004, 16:02
- Pisteitä: 14
Re: Excel-tiedostojen läpikäynti makron avulla?
Kiitos, olipa siisti esitys! Teki just sen, mitä tarkoitinkin myös kymmenkunta vuotta vanhalla Excel-versiollani.S.Mäenala kirjoitti: Siinä kaikki.
Koodi on kirjoitettu Excel 2010 -versiolla eikä mahdollisesti toimi kovin vanhalla Excel'illä.
Sen verran jäi vielä toivetta, että jos haluaisin koostaa taulukoista erilaisia tietoja eri kohdista, niin kuinka tuota kaavaa tulisi modifioida? Esimerkki:
- Lähdeasiakirjan nimi -> koostetaulukon sarakkeeseen A
- Ottelutieto lähdetaulukosta solusta B1 -> sarakkeeseen B
- 1X2-prosentit lähdetaulukosta alueelta A35…C35 -> sarakkeisiin C…E (suoraan)
- Tulosdataa lähdetaulukosta alueelta H40…H49 -> sarakkeisiin F…O (transponoiden)
… mahdollisesti rivinvaihto ja toinen tai useampikin matsi samasta lähdefilestä (kuitenkin haettavia matseja aina sama määrä kaikissa lähdeasiakirjoissa)
… asiakirjan vaihto ja samalla rivinvaihto
… tai mitä jos halutaankin tiedot koosteeseen sarakkeittain eli vierekkäin
Ajattelin tässä nyt sellaista varsin yleispätevää ohjetta, josta voisi tällainen tumpulampikin muokata ja rakennella oman palapelin aina kulloistenkin tarpeiden mukaan, sillä eihän sitä aina etukäteen tiedä, mitä seuraavaksi saa päähänsä alkaa räknäilemään.
Josko jaksaisit vielä laittaa noista jonkinlaista simppeliä esimerkkiä.
Minikommentit
- S.Mäenala
- Jäsen
- Viestit: 1190
- Liittynyt: 18.01.2011, 19:17
- Pisteitä: 3737
- Paikkakunta: Kamppi
Re: Excel-tiedostojen läpikäynti makron avulla?
Anteeksi h, vähän pitkät vastauspiuhat täällä päässä.h kirjoitti:...Teki just sen, mitä tarkoitinkin myös kymmenkunta vuotta vanhalla Excel-versiollani.
Sen verran jäi vielä toivetta, että jos…
Hyvä kun toimi Sinunkin versiollasi!
Valitettavasti aikaresurssit eivät salli kovin henkilökohtaisten palvelujen tarjoamista.
Koodaamisen kannalta hankalimmat kohdat noissa Sinun toiveissasi liittyvät juuri asiakirjojen pyörittelyyn. Sen osuuden tuo yo. koodaus hoitaa for … next -loopissa jo valmiiksi. Kun asiakirja on auki, kirjoitetaan sen käsittelyä koskeva koodi siis tuon loopin sisään, tietysti ennen sulkukomentoa Close.
Välilehden valinta suoritetaan Worksheets -komennolla. Yksittäisiin soluihin viitataan Cells(row,column) -määrityksellä ja alue määritellään Rangella. Kaikista näistä tuolla koodissa on jo valmis malli.
Loppu on vain copy/pastea.
VBA-koodauksen perusteet on suht helppo oppia muutaman tunnin itseopiskelullakin. Netistä löytyy sopivaa opiskelumateriaalia yllin kyllin jollakin vba tuts -tyyppisellä haulla.
Minikommentit
-
h
- Jäsen
- Viestit: 47
- Liittynyt: 23.01.2004, 16:02
- Pisteitä: 14
Re: Excel-tiedostojen läpikäynti makron avulla?
Kysymykseni ydinasia tuossa tosiaan tulikin eli tiedostojen vuoronperäinen läpikäynti, mikä on jo sinällään kannaltani ratkaiseva asia, kun tässä suurin piirtein "Hello Word" -tasolta lähdetään VBA-luuppia puskemaan. Täytyy jossakin sopivassa vaiheessa ottaa lapio kouraan, niin enköhän ohjeittesi pohjalta saa aikaiseksi vielä vaikka mitä...S.Mäenala kirjoitti: Valitettavasti aikaresurssit eivät salli kovin henkilökohtaisten palvelujen tarjoamista.
...VBA-koodauksen perusteet on suht helppo oppia muutaman tunnin itseopiskelullakin.
Kiitos ja kumarrus!
Minikommentit