Bosna i Hercegovina



#1 06.02.2017-16:00
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,758


Subject: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
trebao bi nekakvu proceduru koja ce sve listove iz Knjiga2.xlms, Knjiga3.xlms,Knjiga4.xlms...itd
kopirati u Knjiga1.xlms nakon List1

hvala

ja sam nasao nesto na internetu ali mi ne radi:

DownloadIzvorni kod (Visual Basic):
  1. Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
  2. Application.ScreenUpdating = False
  3. Application.DisplayAlerts = False
  4. directory = "c:\test\"
  5. fileName = Dir(directory & "*.xl??")
  6. Do While fileName <> ""
  7.         Workbooks.Open (directory & fileName)
  8.         For Each sheet In Workbooks(fileName).Worksheets
  9.                 total = Workbooks("import-sheets.xls").Worksheets.count
  10.                 Workbooks(fileName).Worksheets(sheet.Name).Copy _
  11.                         after:=Workbooks("import-sheets.xls").Worksheets(total)
  12.         Next sheet
  13.         Workbooks(fileName).Close
  14.         fileName = Dir()
  15. Loop
  16. Application.ScreenUpdating = True
  17. Application.DisplayAlerts = True

Newton laže! Lake padaju brže!
↑  ↓

#2 06.02.2017-21:12
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Ovako.
Imas excel fajlove koji se zovu:
Knjiga1
Knjiga2
Knjiga3
i
Knjiga4.
U svim tim Fajlovima Imas po jeada sheet i hoces shetove iz knjiga2 knjiga3 i knijiga4 da kopiraš u knjigu1 u shetove 2, 3 i 4

Jeasam li pogodio?
Pozdrav
↑  ↓

#3 07.02.2017-00:20
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,758


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
imam excel fajlove knjiga1, knjiga2, knjiga3 u njima su listovi (sheet) u
knjiga1 list1...list3
knjiga2, list1...list6
knjiga3, list1...list4

zelim kopirati sve listove iz svih tih excel fajlova u novi excel fajl knjiga4
Newton laže! Lake padaju brže!
↑  ↓

#4 07.02.2017-00:38
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
E onda idemo modul po modul.
Prvo treba napraviti proceduru koja ce pretrazivati sve exel fajlove u nekom diorektoriju jer ih moze biti vise.
Ako neces sve exel fajlove iz tog direktorija onda treba i napraviti spisak fajlova iz kjih zelis kopirati sitove.
Proceduru za pretragu diska imas u koristan kod accessovog foruma arhiva.
Kda tu proceduru dovedemo u red da radi ono sto treba onda idemo dalje.
Pozdrav
↑  ↓

#5 07.02.2017-01:36
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Evo procedura samo je treba prilagoditi.
Ako nije jasno pitaj.
DownloadIzvorni kod (Visual Basic):
  1. Function DirFajl(Putanja As String, Optional Kriterija As String = "*")
  2. On Error GoTo Error_Handler
  3.     Dim Fajl As String
  4.     Fajl = Dir(Putanja & "*." & Kriterija)
  5.         Do While Fajl <> vbNullString
  6.             If Fajl <> "." And Fajl <> ".." Then
  7.                     Debug.Print "- " & Fajl
  8.             End If
  9.             Fajl = Dir
  10.         Loop
  11. Error_Handler_Exit:
  12.     On Error Resume Next
  13.     Exit Function
  14. Error_Handler:
  15.     MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
  16.             "Error Number: " & Err.Number & vbCrLf & _
  17.             "Error Source: DirFajl" & vbCrLf & _
  18.             "Error Description: " & Err.Description, _
  19.             vbCritical, "An Error has Occured!"
  20.     Resume Error_Handler_Exit
  21. End Function

Pozdrav
↑  ↓

#6 07.02.2017-08:52
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,758


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
u isto vrijeme smo postali pa nije moje prihvatilo

ne treba pretraziti cijeli disk.

ja sam to ovako zamislio:
mogu staviti matricu sa nazivom fajlova

DownloadIzvorni kod (Visual Basic):
  1. excelFile= array("knjiga1.xlms","knjiga2.xlms","knjiga3.xlms")
  2. dir="c:\excelFile\"
  3.  
  4. for f=1 to ubound(excelFile)
  5.     fileName=Dir(dir & excelFile(f))
  6.     ...
  7.     kod koji otvori excel file i kopira sve listove u trenutni excel file
  8.     ...
  9. next f

Newton laže! Lake padaju brže!
↑  ↓

#7 07.02.2017-19:08
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,758


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
kada radim sa procedurom jedan, dugo to traje ali napravi na kraju.
Problem je kada zelim snimiti taj excel fajl, javi mi sljedece greske:





Newton laže! Lake padaju brže!
↑  ↓

#8 07.02.2017-21:57
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 556


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Ovo kod mene radi
importuje sve neprazne sheetove iz direktorijuma gde je smesten fajl
radi za xls fajlove
trebalo bi dodati petlju da to jos jednom uradi za xlsx, xlsm, eventualno csv ili sta vec

DownloadIzvorni kod (Visual Basic):
  1. Private Sub CommandButton2_Click()
  2. On Error GoTo Error_Handler
  3.    
  4.     Dim putanja As String
  5.     Dim Fajl As String
  6.     Dim kriterija As String
  7.     Dim puninaziv As String
  8.     Dim book As Workbook
  9.    
  10.     Application.ScreenUpdating = False
  11.     kriterija = "xls"   ' za xls (excel 2003 i nize fajlove)
  12.    putanja = Application.ThisWorkbook.Path 'nalazi tekuci direktorijum
  13.     puninaziv = putanja & "\*." & kriterija
  14.     Fajl = dir(puninaziv)
  15.         Do While Fajl <> vbNullString
  16.             If Fajl <> "." And Fajl <> ".." And Fajl <> Application.ThisWorkbook.Name Then ' da ne importuje tekuci fajl
  17.          
  18.                 Set book = Workbooks.Open(Fajl, True, True)
  19.                     For Each tabla In book.Sheets
  20.                     If tabla.UsedRange.Cells.Count > 1 Then ' da li i sheetu ima podataka
  21.                        tabla.Copy after:=Sheet1
  22.                     End If
  23.                 Next tabla
  24.  
  25.                 book.Close
  26.                  
  27.             End If
  28.             Fajl = dir
  29.         Loop
  30.         Application.ScreenUpdating = True
  31.        
  32. Error_Handler_Exit:
  33.     On Error Resume Next
  34.     Exit Sub
  35. Error_Handler:
  36.     MsgBox "The following error has occured." & vbCrLf & vbCrLf & _
  37.             "Error Number: " & Err.Number & vbCrLf & _
  38.             "Error Source: DirFajl" & vbCrLf & _
  39.             "Error Description: " & Err.Description, _
  40.             vbCritical, "An Error has Occured!"
  41.     Resume Error_Handler_Exit
  42. End Sub
↑  ↓

#9 07.02.2017-22:54
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
DownloadIzvorni kod (Visual Basic):
  1. Option Explicit
  2.  
  3. Function Kopiraj()
  4.  Dim ObEx As Excel.Application
  5.  Dim Vork As Excel.Workbook, VorkN As Excel.Workbook
  6.  Dim ExSit As Excel.Worksheet, ExSitN As Excel.Worksheet
  7.  Dim excelFile, DirF As String, Filename As String, Putanja As String
  8.  Dim f As Integer, I As Integer
  9.  
  10. excelFile = Array("knjiga1.xlms", "knjiga2.xlms", "knjiga3.xlms")
  11. DirF = "c:\excelFile\"
  12. Putanja = DirF & "Zbirna.xlms"
  13. Set ObEx = New Excel.Application
  14. Set VorkN = ObEx.Workbooks.Add
  15. VorkN.SaveAs Putanja
  16. For f = 0 To UBound(excelFile)
  17.     Filename = Dir(DirF & excelFile(f))
  18.     If Filename <> "" Then
  19.     Putanja = DirF & Filename
  20.     Set Vork = ObEx.Workbooks.Open(Putanja)
  21.     For Each ExSit In Vork.Sheets
  22.     I = I + 1
  23.     ExSit.Copy VorkN.Sheets(I)
  24.     VorkN.Sheets(I).Name = Filename & "_" & ExSit.Name
  25.     Next ExSit
  26.     Vork.Close
  27.     End If
  28. Next f
  29. VorkN.Save
  30. VorkN.Close
  31. End Function

To ces ti fino srediti i objasniti kod.
Pozdrav
↑  ↓

#10 08.02.2017-00:26
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Hehe sad vidim da je i @dexxxl postavio.
Pozdrav
↑  ↓

#11 08.02.2017-13:21
Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 2,758


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
dexxxl:
1. morao sam promijeniti: tabla.Copy after:=Sheet1 u tabla.Copy after:=List1
2. slozi mi obrnuti redosljed listova, znaci kopira od zadnjeg prema prvom, ali to i nije tako bitno
3. kada zelim snimiti to sto je napravljeno prijavi mi greske one sa slika gore.

moze biti da nesto kod mene u sistemu ne valja, mozda imam malo memorije ili je procesor preslab

zxz:
naziv datoteka mi je bio predugacak pa sam morao preimenovati u ime1.xlms,ime2.xlsm ...itd


nakon toga sam htio izbrisati staru zbirna datoteku ali je bilo nesto blokirano


onda sam skinuo unlock i lockHunter pa sam ju uspio izbrisati na jedvice jade

pokrenuo sam prije 10 minuta funkciju koju sam stavio kao sub...endsub, a ne kao funkciju i evo jos cekam u VBA pise running, a na listu excela pise

i ja sam kliknuo na u redu
sada cekam
...nakon nekih 20min



=> Next ExSit

mozda ipak da ja rucno iz 10 excel fajlova kopiram metodom copy-paste po nekih 10-tak listova u novi excel fajl?
Newton laže! Lake padaju brže!
Ovaj komentar je mijenjan 2 puta. zadnja izmjena 08.02.2017-13:48 od strane Avko. ↑  ↓

#12 08.02.2017-20:31
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
De sad napisi u kjoj verziji ofisa si radio.
Onda cemo ti dati poblize o cemiu se radi.
Pozdrav
↑  ↓

#13 08.02.2017-20:35
zxz Online
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,489


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
uff zaboravi napisi i verziju op. sistema win.
Pozdrav
↑  ↓

#14 08.02.2017-22:49
dex Offline
Super Moderator
Registrovan/a od: 23.02.2012-19:59
Komentari: 556


Ocjena: Ocjena:100 Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Citat od Avko:

slozi mi obrnuti redosljed listova, znaci kopira od zadnjeg prema prvom

stavi

tabla.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Citat od Avko:

kada zelim snimiti to sto je napravljeno prijavi mi greske one sa slika gore.

Citat od Avko:

mozda ipak da ja rucno iz 10 excel fajlova kopiram metodom copy-paste po nekih 10-tak listova u novi excel fajl?

Ne znam kako se excel ponasa sa stotinak sheetova, mozda mu je previse

ispod reda tabla.Copy after:=
stavi

Application.ThisWorkbook.Save

da snimi posle svakog ubacenog sheeta, pa da vidimo na kom ce sheetu ce da zabaguje
↑  ↓

#15 08.02.2017-23:44
Grunf Offline
Clan
Registrovan/a od: 11.11.2016-01:02
Komentari: 67


Subject: Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
da kratko opisem jedno zanimljivo iskustvo sa Excelom, ali ne znam ima li ikakve veze sa ovim problemom.
naime, imao sam jednu aplikaciju koja je radila pod starom verzijom Office-a, a kad sam morao instalirati novu verziju aplikacija je drasticno, ali grozomorno drasticno usporila. problem je bio prilicno banalan. novi Excel je imao milion redova po sheet-u, a onaj stari oko 65 hiljada. a u aplikaciji sam na par mjesta imao kopiranja tipa "zagrabi sve" (ctrl+A) i prebaci u drugi sheet. i to je bio razlog...
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 23.11.2017-19:29.