< návrat zpět
MS Excel
Téma: optimalizace makra - smycka
Zaslal/a DAve23 13.7.2012 11:16
Ahoj,
mam takovy problem. Mam dva excel soubory. V jednom mam Pivot Tabulku, ve druhem cca 10 samostatnych tabulek (stejne velkych).
Zadani je, menit postupne filter v Pivot tabulce a postupne nakopirovat prvnich deset radku (10x4 bunek) a vlozit je
postupne do tech deseti samostatnych tabulek.
Filtr v PIVOT tabulce je napr. pomeranc, jablko, banan .... (soubor excel_1)
Jednotlive tabulky maji pojmenovane oblasti, do kterych se kopiruje prave jako pomeranc_area, ale neni problem pojmenovat je jinak
Takhle jak je to napsane, tak mi to funguje, ale rad bych to trochu zoptimalizoval (nejake trochu univerzalnejsi reseni)
do smycky, abych pro kazdy druh ovoce nemusel ten samy kod kopirovat porad dokola.
Díky za tipy.
---------------------------------------------------------------------------------------------------
Windows(excel_1).Activate 'prepne do weekly reportu
ovoce = "pomeranc" 'vyber ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotFields("ConfigCode").CurrentPage = ovoce 'nastaveni PIVOT tabulky na ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotCache.Refresh 'refresh
Range("TOP_TEN_AREA").Select 'oznaci oblast TOP TEN v PIVOT tabulce pro dane ovoce
Application.CutCopyMode = False 'CTRL+C
Selection.Copy 'CTRL+C
Windows(excel_2).Activate 'prepne do weekly reportu
Range("pomeranc_area").Select 'oznaci oblast TOP_TEN pro dane ovoce
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'CTRL+P (pouze hodnoty)
-----------------------------------------------------------------------------------------------------
Uzamčeno - nelze přidávat nové příspěvky.
Jeza.m(13.7.2012 11:36)#009011 teoreticky:
Dim ovoce_list() As String
Dim ovoce As String
ovoce_list = Split("pomeranc,jablko,banan,kiwi", ",")
For o = 0 To UBound(ovoce_list)
Windows(excel_1).Activate 'prepne do weekly reportu
ovoce = ovoce_list(o) 'vyber ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotFields("ConfigCode").CurrentPage = ovoce 'nastaveni PIVOT tabulky na ovoce
ActiveSheet.PivotTables("PivotTable_TOP_TEN").PivotCache.Refresh 'refresh
Range("TOP_TEN_AREA").Select 'oznaci oblast TOP TEN v PIVOT tabulce pro dane ovoce
Application.CutCopyMode = False 'CTRL+C
Selection.Copy 'CTRL+C
Windows(excel_2).Activate 'prepne do weekly reportu
Range(ovoce & "_area").Select 'oznaci oblast TOP_TEN pro dane ovoce
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'CTRL+P (pouze hodnoty)
Next
M@
citovat
DAve23(13.7.2012 11:43)#009012 prakticky... funguje perfektne, diky !
admin pls. lock
citovat