Centar za edukaciju-BiH



#1 06.02.2017 16:00
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet: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:

PreuzmiIzvorni kôd (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

zivot je moja domovina.
↑  ↓

#2 06.02.2017 21:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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?
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 07.02.2017 00:20
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet: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
zivot je moja domovina.
↑  ↓

#4 07.02.2017 00:38
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 07.02.2017 01:36
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Evo procedura samo je treba prilagoditi.
Ako nije jasno pitaj.
PreuzmiIzvorni kôd (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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 07.02.2017 08:52
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet: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

PreuzmiIzvorni kôd (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

zivot je moja domovina.
↑  ↓

#7 07.02.2017 19:08
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet: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:





zivot je moja domovina.
↑  ↓

#8 07.02.2017 21:57
dex Van mreze
Super Moderator
Registrovan od:23.02.2012
Postovi:625


Predmet: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

PreuzmiIzvorni kôd (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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
PreuzmiIzvorni kôd (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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 08.02.2017 00:26
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Excel kopiranje listova iz Knjiga2, Knjiga3, Knjiga4.. u Knjiga1
Hehe sad vidim da je i @dexxxl postavio.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (3):1,2,3


Sva vremena su GMT +01:00. Trenutno vrijeme: 7: 28 pm.