Stránka 1 z 1

Excel - makro - aktualizace kontingenční tabulky

Napsal: 04 srp 2006 12:11
od Koubis
Muze mi prosim nekdo poradit, kde je chyba? Mam kontingenční tabulku která se musí vždy ručně aktualizovat, proto sem nahral makro které by mi to trosku ulehčilo, protože tabulka je ve skrytem liste. Telo makra vypada takto:

Sub Makro1()
Sheets("CŘ_sumCAD").Visible = True
Range("D12").Select
ActiveSheet.PivotTables("Kontingenční tabulka 1").RefreshTable
ActiveWindow.SelectedSheets.Visible = False
Sheets("CŘvš").Select
End Sub

jenze kdyz makro spustim, ohlasi se chyba:
Run-time error ´1004´:
"nelze ziskat vlastnosti PivotTables třídy worksheet"

Nevíte v čem je zakopanej pes? Programování byla vždycky moje slabá stránka.

Napsal: 04 srp 2006 13:19
od Koubis
Tak po chvilce badani sem na to prisel:

Sub Makro1()
Sheets("CŘ_sumCAD").Visible = True
Sheets("CŘ_sumCAD").Select
ActiveSheet.Unprotect
Range("A4").Select
ActiveSheet.PivotTables("Kontingenční tabulka 1").RefreshTable
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWindow.SelectedSheets.Visible = False
Sheets("CŘvš").Select
End Sub

problém byl asi v tom ze po zobrazení skrytého listu se musí na něj znovu odkázat, tj.
Sheets("CŘ_sumCAD").Select

a kdyby nekoho zajimalo jak se to da priradit na tlacitko tak je to takhle:

Private Sub CommandButton1_Click()
Application.Run "'nazev sešitu.xls'!Makro1"
End Sub

Napsal: 06 srp 2006 09:23
od mikel
Kdyby tě zajímalo, jak to můžeš zjednodušit, tak tady to je:

Sub Makro1()
Sheets("CŘ_sumCAD").Unprotect
Sheets("CŘ_sumCAD").PivotTables("Kontingenční tabulka 1").RefreshTable
Sheets("CŘ_sumCAD").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Protože jak listy tak kontingenční tabulky jsou objekty, nemusíš je zobrazovat a přepínat se do nich, ale stačí na ně odkázat a příkazy se provedou, i když jsou objekty skryté.