ZDRUŽEVANJE EXCEL DATOTEK

Pomoč pri delu z MS Excelom
Odgovori
fitefrbe
Prispevkov: 11
Pridružen: Po Mar 02, 2015 4:09 pm

ZDRUŽEVANJE EXCEL DATOTEK

Odgovor Napisal/-a fitefrbe »

Imam cca 200 excel datotek, ki imajo vse enako strukturo in bi jih rad združil v eno datoteko. Ali je potrebno napisati macro ali se to lahko reši drugače.
Prosim za najenostavnejšo rešitev!
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: ZDRUŽEVANJE EXCEL DATOTEK

Odgovor Napisal/-a admin »

Pozdravljeni,

Excel orodja za združevanje tabel nima, zatorej je postopek relativno preprost a seveda zamuden. Odprete datoteko, označite podatke in jih prekopirate. Kot rečeno je to zagotovo najenostavnejši postopek, a je zamuden! Če želite to izvesti hitreje pa je potrebno poseči po makru.

Tudi v tem forumu imate kar nekaj makrov, ki združujejo liste oz. podatke; malce poiščite po forumu.
lp,
Matjaž Prtenjak
Administrator
fitefrbe
Prispevkov: 11
Pridružen: Po Mar 02, 2015 4:09 pm

Re: ZDRUŽEVANJE EXCEL DATOTEK

Odgovor Napisal/-a fitefrbe »

Pozdravljeni!

Hvala za odgovor. Spodaj je makro, ki sem ga našel na spletu in uspešno uporabil za združitev več datotek. Sem pa naletel na zanimiv problem, ki ga žal ne znam rešiti sam. Vse datoteke so se združile pravilno, vendar je problem v tem, da so se podatki iz več stolpcev (med katerimi so bili nekateri tudi prazni) prenesli v en ali dva stolpca, ne pa enako kot so bili v originalnih datotekah. Če so npr. v originalu podatki v stolpcu A (xxxx), B (yyyy), nato pa sta C in D stolpca prazna, pa je spet podatek v E stolpcu (2222), so podatki v združeni datoteki samo v stolpcu A v naslednji obliki - "xxxxyyyy;;2222"

Ali obstaja kakšna resitev?

Za odgovor se vam vnaprej zahvaljujem,

Lep pozdrav!

====================================================================
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")

Set dirObj = mergeObj.Getfolder("C:\Users\Komerciala1\Desktop\Excel test")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)

Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub
===========================================================
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: ZDRUŽEVANJE EXCEL DATOTEK

Odgovor Napisal/-a admin »

Pozdravljeni,

koda je sicer neoptimalna a naredi natanko to, kar obljublja, združi podatke iz vseh prvih listov vseh datotek v izbran mapi. To sicer dela preko funkcije Copy/Paste in ne vem kako naj bi vam delala tako kot trdite. Funkcija nikjer ne združuje posameznih podatkov v eno kolono, oz. ne združuje podatkov iz kolon A,B,C,D... samo v kolono A.

Sklepam, pa, da vi v mapi sploh nimate Excelovih datotek, temveč navadne tekstovne datoteke, v katerih pač v vsaki vrstici piše nekaj takšnega kot: "xxxxyyyy;;2222" in ko vi to odprete v Excelu je Excel dovolj pameten, da to razbije po posameznih kolonah. Sklepam torej, da vi v mapi sploh nimate Excelovih datotek, temveč tekstovne datoteke....
lp,
Matjaž Prtenjak
Administrator
Odgovori