Stránka 1 z 1

Určení oblasti zdrojových dat pro kont. tab (ve visual basic

Napsal: 02 čer 2009 14:32
od icewind
ahoj,
mám zde fragment makra pro tvorbu kontingenční tabulky ve Visual Basic v Excelu. Potřebuji zaktualizovat oblast vstupních dat pro kont. tab. a potřebuji to zautomatizovat. Mám pocit, že oblast dat musí být ve formátu R1C1, ale nějak se mi to nedaří, dokážete mi někdo poradit (viz níže - problém v SourceData:=c)? Děkuji velice

Sub HOP_NŽ_ks_rizik()

Dim a, b, c As Variant


Sheets("vstupní data - systém").Activate
Range("a1", "i1").Select
Range(Selection, Selection.End(xlDown)).Select
a = Selection.Address
b = Sheets("vstupní data - systém").Name
c = "'" & b & "'" & "!" & a

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=c).CreatePivotTable TableDestination:= _
"'[HOP 04_2009.xls]HOP_NŽ_ks_rizik'!R3C1", TableName:= _
"Kontingenční tabulka 7", DefaultVersion:=xlPivotTableVersion10

Re: Určení oblasti zdrojových dat pro kont. tab (ve visual basic

Napsal: 03 čer 2009 14:14
od navstevnik
Cast kodu:

Kód: Vybrat vše

Dim c As String, Blok As Range
  Worksheets("vstupní data - systém").Activate
  With ActiveSheet
    Set Blok = .Range(.Range("a1"), .Range("i1").End(xlDown))
    c = .Name & "!" & Blok.Address
  End With

Je to mozne pripadne jeste zjednodusit:

Kód: Vybrat vše

Dim c As String, Blok As Range
  With Worksheets("vstupní data - systém")
    Set Blok = .Range(.Range("a1"), .Range("i1").End(xlDown))
    c = .Name & "!" & Blok.Address
  End With

Re: Určení oblasti zdrojových dat pro kont. tab (ve visual basic

Napsal: 04 čer 2009 11:32
od icewind
Děkuji za zaslané, ale pořád mi nefunguje odkaz na "c" při tvrobě kontingenční tabulky:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= :-( c :-( ).CreatePivotTable TableDestination:= _
"'[HOP 04_2009.xls]HOP_NŽ_ks_rizik'!R3C1", TableName:= _
"Kontingenční tabulka 7", DefaultVersion:=xlPivotTableVersion10

děkuji za jakoukoliv pomoc

Re: Určení oblasti zdrojových dat pro kont. tab (ve visual basic

Napsal: 04 čer 2009 15:54
od navstevnik
Neuvadis verzi Excelu ani cely kod pro vytvoreni kontingencni tabulky.
V Excelu 2000 nasledujici procedura je funkcni (zdroj je dva sloupce: Jm a Ks):

Kód: Vybrat vše

Option Explicit

Sub KonTab()
Dim c As String, Blok As Range
  With Worksheets("list1")
    Set Blok = .Range(.Range("a1"), .Range("b1").End(xlDown))
    c = .Name & "!" & Blok.Address
  End With
  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        c).CreatePivotTable TableDestination:=Worksheets("list3").Range("A1"), _
        TableName:="Kontingenční tabulka 1"
    ActiveSheet.PivotTables("Kontingenční tabulka 1").SmallGrid = False
    ActiveSheet.PivotTables("Kontingenční tabulka 1").AddFields RowFields:="Jm"
    ActiveSheet.PivotTables("Kontingenční tabulka 1").PivotFields("ks"). _
        Orientation = xlDataField
End Sub