Pozdrav,
Složio sam jedan macro koji javlja pogrešku...
Help...
Re: Macro...
Pozdrav,
Koji makro? Koju gresku?
Malo postaje zamorno i besmisleno da kad god neko zeli da pomogne mora najpre da zatrazi dodatna objasnjenja.
Molim vas ubuduce da precizirate problem. Ako vi nemate toliko vremena za svoj problem, zasto bi neko drugi imao?
Pozdrav,
Da li prihvaćate ispriku, u kolioko da onda OK, ukoliko ne zanemarite ovaj e-mail i više se neću javljati ni ništa pitati...
Nije mi bila namjera zamarati besmislenim pitanjima... jednostavno tekst koji sam spremio nisam zabunom poslao...
Pojašnjenje...
Macro koji sam pripremio javlja slijedeću grešku: Run-time error '1004': Unable to get the PivotItems property of the PivotFiles class
Greška se javlja nakon što pokušam grupirati podatke po mjesecima tako da budu prikazani i podaci iz mjeseca koji još nemaju podataka...
Želja je bila da mogu pripremljeni macro koristiti čitavu godinu ( s time da ako radim izvješće za npr prva dva kvartala ostali mjeseci budu u kolonama s iznosima 0)
Macro koji je pripremljen i javlja pogrešku slijedi u nastavku kao i podaci na kojima je to rađeno...
Sub Media_Vox()
'
' Media_Vox Macro
'
'
Columns("I:L").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("Table_Media_Vox[[#Headers],[Column1]]").Select
ActiveCell.FormulaR1C1 = "PS_Duguje"
Range("Table_Media_Vox[[#Headers],[Column2]]").Select
ActiveCell.FormulaR1C1 = "PS_Potražuje"
Range("Table_Media_Vox[[#Headers],[Column3]]").Select
ActiveCell.FormulaR1C1 = "PR_Duguje"
Range("Table_Media_Vox[[#Headers],[Column4]]").Select
ActiveCell.FormulaR1C1 = "PR_Potražuje"
Range("I2").Select
ActiveCell.FormulaR1C1 = _
"=IF(Table_Media_Vox[[#This Row],[VR_DOK]]=""PS"",Table_Media_Vox[[#This Row],[DUG]],0)"
Range("J2").Select
ActiveCell.FormulaR1C1 = _
"=IF(Table_Media_Vox[[#This Row],[VR_DOK]]=""PS"",Table_Media_Vox[[#This Row],[POT]],0)"
Range("K2").Select
ActiveCell.FormulaR1C1 = _
"=IF(Table_Media_Vox[[#This Row],[VR_DOK]]=""PS"",0,Table_Media_Vox[[#This Row],[DUG]])"
Range("L2").Select
ActiveCell.FormulaR1C1 = _
"=IF(Table_Media_Vox[[#This Row],[VR_DOK]]=""PS"",0,Table_Media_Vox[[#This Row],[POT]])"
Range("L3").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Table_Media_Vox", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Sheet2!R3C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion12
Sheets("Sheet2").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("KONTO")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("NAZIV")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("PS_Duguje"), "Sum of PS_Duguje", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("PS_Potražuje"), "Sum of PS_Potražuje", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("PR_Duguje"), "Sum of PR_Duguje", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("PR_Potražuje"), "Sum of PR_Potražuje", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("DUG"), "Sum of DUG", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").PivotFields("POT"), "Sum of POT", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("PivotTable1").PivotSelect "KONTO[All]", xlLabelOnly + _
xlFirstRow, True
Range("A5").Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("KONTO")
.Subtotals = Array(False, False, False, False, False, False, False, False, False, _
False, False, False)
.ShowAllItems = True
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("KONTO")
.LayoutForm = xlTabular
.IncludeNewItemsInFilter = True
End With
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-24
Sheets.Add
ActiveWorkbook.Worksheets("Sheet2").PivotTables("PivotTable1").PivotCache. _
CreatePivotTable TableDestination:="Sheet3!R3C1", TableName:="PivotTable2" _
, DefaultVersion:=xlPivotTableVersion12
Sheets("Sheet3").Select
Cells(3, 1).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("PivotTable2").PivotFields("KONTO")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable2").PivotFields("NAZIV")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable2").PivotFields("DAT_DOK")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("PivotTable2").PivotFields("DAT_DOK")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable2").AddDataField ActiveSheet.PivotTables( _
"PivotTable2").PivotFields("PR_Duguje"), "Sum of PR_Duguje", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Range("B4").Select
ActiveSheet.PivotTables("PivotTable2").PivotFields("DAT_DOK").ShowAllItems = _
True
ActiveSheet.PivotTables("PivotTable2").PivotFields("DAT_DOK"). _
IncludeNewItemsInFilter = True
Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
False, True, False, False)
With ActiveSheet.PivotTables("PivotTable2").PivotFields("DAT_DOK")
.PivotItems("<1/1/2009").Visible = False
.PivotItems(">3/7/2009").Visible = False
End With
End Sub
|
POD |
T_GOD |
KONTO |
NAZIV |
VR_DOK |
BR_DOK |
DAT_DOK |
OPIS |
DUG |
POT |
DUG_DEV |
POT_DEV |
PP |
RACUN |
MJ_TROS |
SKL |
|
VOX |
2009 |
03100 |
Uredska oprema |
PS |
2 |
1.1.2009 0:00 |
PS |
7090,16 |
0 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
6 |
30.6.2009 0:00 |
Obračun amortizcaije |
0 |
97,3 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
1 |
31.1.2009 0:00 |
Obračun amortizcaije |
0 |
295,42 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
4 |
30.4.2009 0:00 |
Obračun amortizcaije |
0 |
97,3 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
3 |
31.3.2009 0:00 |
Obračun amortizcaije |
0 |
295,42 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
2 |
28.2.2009 0:00 |
Obračun amortizcaije |
0 |
295,42 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
PS |
2 |
1.1.2009 0:00 |
PS |
0 |
4647,07 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
03901 |
Akumulirana amortizacija postrojenja i opreme |
AM |
5 |
31.5.2009 0:00 |
Obračun amortizcaije |
0 |
97,3 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
2 |
2.2.2009 0:00 |
IZVOD 2 |
1387 |
220 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
20 |
10.6.2009 0:00 |
IZVOD 20 |
2135 |
30,7 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
4 |
10.2.2009 0:00 |
IZVOD 4 |
0 |
45,3 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
5 |
25.2.2009 0:00 |
IZVOD 5 |
3660 |
0 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
6 |
27.2.2009 0:00 |
IZVOD 6 |
0 |
660 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
7 |
10.3.2009 0:00 |
IZVOD 7 |
0 |
54,39 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
8 |
13.3.2009 0:00 |
IZVOD 8 |
0 |
1500 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
9 |
3.4.2009 0:00 |
IZVOD 9 |
0 |
800 |
0 |
0 |
|
|
|
|
|
VOX |
2009 |
1003 |
Žiro račun kod HYPO ALPE ADRIA BANK dd |
I1 |
10 |
9.4.2009 0:00 |
IZVOD 10 |
0 |
1149,24 |
0 |
0 |
|
|
|
|
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4464 (20090928) __________
----- Original Message -----From: Damir Ivšić
Pozdrav,
Zahvaljujem na pomoći...
Pitanje je bilo čemu sve to...?
Možda mi to zaiste i ne treba...
Do podataka koji mi trebaju mogu doći i bez toga... (ručno bez macroa i onda je sve OK)
Stvar je u tome da iz takvih izvješća korisnici dobiju više informacija...
Kada bih uspio naći riješenje za to mogao bih za čitavu godinu koristiti isti upit i macro...
U koliko ne nađem riješenje moći ću i bez toga, no znatiželja je velika...
Hvala na pomoći...
Možda nisam jasno objasnio cijeli postupak...
Procedura koju izvedem je slijedeća:
1. Pripremio sam querry koji pita bazu podatke (odmah u startu tražim
podatke npr. Čitavu 2009 godinu)
2. Baza podataka vrati odgovor koji upadne u neki excel sheet...
3. Taj sheet sadrži podatke koji su ažurirani do nekog određenog datuma i u
pravilu je to manje od datuma kojeg na početku definiram...
3. Tu kreće potreba za macro-om...
4. Sve ono što bi mi macro trebao napraviti kada radim "ručno" sve štima i
dođe do kraja...
- Dodaju se nove kolone...
- U te kolone "if" upitima dovučem podatke...
- Dodam calculated field i postavim računanja koja mi trebaju...
Macro koji sam pripremio po mojem mišljenju muči to da pokušava upisati
podatke u kolone koje su mu kreirane ali ne želi upisati vrijednost 0.
I tu stane i traži "debug", kada mu kažem da završi s radom vidim da je u
stvari postupak završen ali svi koraci koji su u macro-u bili definirani
Da se odrade kasnije naravno nisu odrađeni...
Dakle u querry-u sam već predvidio da želim podatke za cijelu godinu...
Macro u stvari kreira ono što tražim ali javi pogreško koju sam vam
opisao...
Ono što sada vidim da mogu je to da posao koji želim napraviti podjelim u
više koraka i za svaki napravim zasebne macro-e...
Na taj način bi dobio ono što želim ali ne u jednom korako nego u više
njih...
No muči me to što ne znam da li mogu vjerovati nekom macro-u koji kaže da
nešto ne može izvesti do kraja. Mislim da ne bih smio...
Također, svu tu proceduru prošao sam nekoliko puta "ručno" i excel se ne
buni...
Mogu bez problema tražiti da mi se prikažu kolone bez podataka... (kada to
isto odradim kroz macro i to bez da pišem proceduru već se ona sama složi
Klikanjem miša) onda stane...
Kada razmatram opciju dodavanja calculated field-a to sam u mojem slučaju u
macrou probao i to radi (u dodane kolone zbrajao sam podatke koji su mi u
obračunu dalje trebali...) no izvještaj kojeg trebam ne mogu dobiti na taj
način (barem mi se tako čini) jer mi nije potreban "novi podatak" već to da
mi macro izvede
Ono što "ručno" mogu napraviti...
Kada kažem "ručno" mislim prvenstveno na to sa da sve ono što sam u macro-u
postavio u stvari prije toga provjerio i dobio sve što mi treba...
Ako se odreknem macro-a ostaje mi da to radim "pješke" što nije nemoguće
kada bi trebalo to ponoviti 4-5 puta, no kada to pokušam izvesti 40 puta
onda već
Tamo nakon desetak ponavljana to postane napor i gubim koncentraciju,
kvalitetu...
Ako do svega što mi treba mogu doći ne korištenjem macroa, a macro ne pišem
ručno nego on pamti korištenje tastature bojim se da mi promaklo nešto vrlo
jednostavno...
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4482 (20091005) __________
Konačno sam uspio uz Vašu pomoć i puno upornosti...
Da bi macro konačno proradio bilo je potrebno slijedeće:
- Kod dolaska do opcije "gruping" čitavo vrijeme sam označavao početno i
završno vrijeme ručno (start: 01.01.2009 i end:31.12.2009) i ispada da
To nije bilo dobro...
- Proradilo je nakon što sam kod "gruping-a" označio da mi trebaju pored
mjeseci i godine (označio sam usporedno i mjesec i godinu) što je vjerojatno
Bilo potrebno da ne javi onaj error...
- Slična stvar se pojavljivala i kasnije kada sam jedan već kreirani sheet
želio kopirati u drugi pa ona u novom promjeniti u filed list drugo polje...
Excel se opet pobunio uz isti eror kao i ranije...
To sam kasnije riješio tako što nisam kopirao jedan sheet u drugi nego počeo
kreirati upit iz početka...
_____________________________
Nepoznanica koja mi nadalje ostaje zove se:
- Kako kopirati već napravljeni macro i u novom promjeniti naziv "table"
kako bi macro mogao raditi na novom uzorku podataka s istom strukturom...
Vidio sam da mogu napraviti save ali ne i saveas...
__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4484 (20091006) __________