IZBORNIK HOME FORUM ACCESS 2003 EXCEL 2003 WORD 2003  .
   
   
HOME
FORUM Win Tips&Tricks
   
KAKO INSTALIRATI
WINDOWS XP ?
Kako instalirati Win XP sa USB STICKA
Kako instalirati WINDOWS 7 ?
Naučite za 15 minuta raditi u Windows XP
Naučite Internet Explorer i Outlook Express
za 15 minuta
Kako kreirati BOOT CD za instalaciju Win95
   
MS OFFICE 2003
MS OFFICE 2007
   
   
HOME NETWORK
tutorijal za mreže
Network Windows 7 - XP
   
ZANIMLJIVI LINKOVI
BROJEVNI SUSTAVI
(DEC, OKT, BIN, HEX )
CMD - Command Prompt
CISCO - CCNA tutoriali
VLSM and SUBNETTING
   
Tutorijali za phpBB forum
JAVASCRIPT
VISUAL BASIC 6.0
AUTOCAD 2007
 

MICROSOFT EXCEL 2007- Kako kopirati i sortirati podatke sa više Sheets na jedan Sheet,
Copy and sort data from multiple Sheets to one Sheet (Summary)

Kopiranje podataka sa više radnih listova i sortiranje na jedan radni list




Kako kopirati i sortirati podatke sa više Sheets na jedan Sheet
(Copy and sort data from multiple Sheets to one Sheet (Summary)

Uzmimo situaciju da imate dva radna lista (Sheets) AA i BB na kojima se nalaze podaci koje želite kopirati i sortirati na trećem radnom listu CC (summary). Ovu radnju možete odraditi pomoću VBA makronaredbe u prilogu. U slučaju na slici ispod poatke sortiramo po stupcu A (po datumima). U koliko prilagođavate ove makronaredbe svojim potrebama obratite pažnju na nazive Sheets i raspone podataka. Name Sheeta mijenjate u VBE sa pritiskom na F4.

Pokrenite VBE pritiskom na ALT+F11 i kopirajte ovaj prvi Macro u Module1.
Ovaj prvi skup VBA makronaredbi sastoji se od 5 procedura koje su svaka zasebno a prve četiri se pozivaju u zadnjoj proceduri "KOPIRAJ". Redoslijed mora biti kao što je prikazan zbog slijeda operacija. Obratite pažnju na nazive Sheets u lijevoj strani VBE izbornika.

PRVI NAČIN

Sub BRISI() '1a BRISE PRETHODNE PODATKE
wsCC.Range("A1", Range("B1").End(xlDown)).ClearContents
End Sub

Sub AA_CC()
'2a KOPIRA SA "AA" NA "CC"
wsAA.Activate
Range("A1", Range("B1").End(xlDown)).Copy
'OD "A1" DO ZADNJEG REDA
wsCC.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'VALUE
wsCC.Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'FORMAT
End Sub

Sub BB_CC()
'3a KOPIRA SA "BB" NA "CC"
wsBB.Activate
Dim xy As Integer
xy = wsCC.Range("A1").End(xlDown).Row + 1
'prvi prazan red u "CC"
Range("A2", Range("B2").End(xlDown)).Copy
'OD "A2" DO ZADNJEG REDA
wsCC.Range("A" & xy).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '
VALUE
wsCC.Range("A" & xy).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'FORMAT
End Sub

Sub SORT()
'4a SORTRA "CC" - PO DATUMU
wsCC.Activate
Range("A2:B1000").SORT Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End Sub

Sub KOPIRAJ()
' 1)BRISE "CC", 2)KOPIRA "AA_CC", 3)KOPIRA "BB_CC", 4)SORTIRA "CC"
Application.ScreenUpdating = False
Call BRISI
'poziva proceduru 1a
Call AA_CC
'poziva proceduru 2a
Call BB_CC
'poziva proceduru 3a
Call SORT
'poziva proceduru 4a
End Sub

Ovoj zadnjoj makronaredbi pridružite button.



DRUGI NAČIN

Ovaj prethodni primjer može se odraditi pomoću makronaredbe ispod, koja objedinjuje sve procedure u jednoj. Uočite sličnosti  sa prethodnom ali sve spakovano u jednu proceduru

Sub Copy_Sort() 'jedan macro koji radi sve

Application.ScreenUpdating = False
'---------------------------------------------------------------------------------------------------
wsCC.Range("A1", Range("B1").End(xlDown)).ClearContents
'1 - BRISI SVE u A i B stupcu
'---------------------------------------------------------------------------------------------------
wsAA.Activate
'2 - KOPIRA SA "AA" NA "CC"

Range("A1", Range("B1").End(xlDown)).Copy
'OD "A1" DO ZADNJEG REDA
wsCC.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '
VALUE
wsCC.Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'FORMAT
'----------------------------------------------------------------------------------------------------
wsBB.Activate
'3 - KOPIRA SA "BB" NA "CC"

Dim xy As Integer
xy = wsCC.Range("A1").End(xlDown).Row + 1
'prvi prazan red u "CC"

Range("A2", Range("B2").End(xlDown)).Copy
'OD "A2" DO ZADNJEG REDA
wsCC.Range("A" & xy).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'VALUE
wsCC.Range("A" & xy).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'FORMAT
'-----------------------------------------------------------------------------------------------------
wsCC.Activate
'4 - SORTRA "CC" - PO A STUPCU

Range("A2:B1000").SORT Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("A1").Select
'pozicionira se na celiju A1 na Sheetu CC
'---------------------------------------------
End Sub

DRUGAČIJI - DRUGI NAČIN - Kopiranja sa više radnih listova

Ovdje obratite pažnju da je ova VBA makronaredba ista kao prethodna ali su drugačiji nazivi radnih listova




Sub Copy_Sort2() 'jedan macro koji radi sve u jednom potezu

Application.ScreenUpdating = False
'---------------------------------------------------------------------------------------------------
Sheets("CC").Range("A1", Range("B1").End(xlDown)).ClearContents
'1 - BRISI SVE u A i B
'---------------------------------------------------------------------------------------------------
Sheets("AA").Activate
'2 - KOPIRA SA "AA" NA "CC"

Range("A1", Range("B1").End(xlDown)).Copy
'OD "A1" DO ZADNJEG REDA
Sheets("CC").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'VALUE
Sheets("CC").Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'FORMAT
'----------------------------------------------------------------------------------------------------
Sheets("BB").Activate
'3 - KOPIRA SA "BB" NA "CC"

Dim xy As Integer
xy = Sheets("CC").Range("
A1").End(xlDown).Row + 1 'prvi prazan red u "CC"

Range("A2", Range("B2").End(xlDown)).Copy
'OD "A2" DO ZADNJEG REDA
Sheets("CC").Range("A" & xy).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'VALUE
Sheets("CC").Range("A" & xy).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'FORMAT
'-----------------------------------------------------------------------------------------------------
Sheets("CC").Activate
'4 - SORTRA "CC" - PO A STUPCU

Range("A2:B1000").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("A1").Select
'pozicionira se na celiju A1 na Sheetu CC
'---------------------------------------------
End Sub

.

TREĆI NAČIN

Ovaj treći način je nepopularan ali također odrađuje ono što nam treba. Ova VBA makronaredba snimljena je pomoću Excelovog VBA (Record Macro)

Sub Macro1()
'kopiranje sa sheets AA i BB na sheet CC
'nakon ljepljenja sortiranje po stupcu A ili datumu
'vrijedi samo ako je range određen za dotične raspone A2:B20


'pozicioniranje na sheet AA
Sheets("AA").Select
'pozicioniranje na sheet AA
Range("A2:B20").Select
'selektiranje range A2:B20
Selection.Copy
'naredba za kopiranje

'pozicioniranje na sheet CC
Sheets("CC").Select 'pozicioniranje na sheet CC
Range("A2").Select
'selektiranje ćelije A2 na sheetu CC kao prve za ljepljenje podataka
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'ljepljenje kopiranih podataka

'pozicioniranje na sheet BB
Sheets("BB").Select
'pozicioniranje na sheet BB
Range("A2:B20").Select
'selektiranje range A2:B20
Application.CutCopyMode = False
'poništavanje prethodno selektiranog range
Selection.Copy
'naredba za kopiranje

'pozicioniranje na sheet CC
Sheets("CC").Select
'pozicioniranje na sheet CC
Range("A21").Select
'pozicioniranje na ćeliju A21 sheeta CC
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'ljepljenje kopiranih podataka
Range("A1:B50").Select
'selektiranje raspona ili range A1:B50 na sheetu CC jer se nalazimo na njemu
Application.CutCopyMode = False

'sortiranje podataka po stupcu A na sheetu CC, podaci se nalaze u rasponu A2:A20
ActiveWorkbook.Worksheets("CC").SORT.SortFields.Clear
ActiveWorkbook.Worksheets("CC").SORT.SortFields.Add Key:=Range("A2:A20" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CC").SORT
.SetRange Range("A1:B20")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
'pozicionira se na celiju A1 na Sheetu CC

End Sub



Na jednom mjestu popis svih tema vezanih za kopiranje (copy) u Excelu: Tutorijali vezani za radnje kopiranja u Excelu







©- 2006 - 2021 - IvanC  - Sva prava pridržana.  ic.ims.hr