Avatar billede kim1a Ekspert
22. september 2016 - 12:06 Der er 4 kommentarer og
1 løsning

VBA i 2007 vs Office 365

Jeg har følgende lille vba der skaber en pivot:

Sub skab_pivot()
Dim strAktuelCelle As String
Dim strTabellen As String

' Bemærk at tabellen må have udgangspunkt i A1
adrAktuelCelle = ActiveCell.Address(ReferenceStyle:=xlR1C1)
strTabellen = Range("A1").CurrentRegion.Address

' Pivot skabes ud fra tabel i A1 og current region
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        strTabellen, Version:=6).CreatePivotTable TableDestination:=adrAktuelCelle, TableName:="PivotTable10", DefaultVersion:=6
    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Bilagsnr.")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable10").PivotFields("Varenr.")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable10")
        .AddDataField ActiveSheet.PivotTables("PivotTable10").PivotFields("Salgsbeløb (faktisk)"), "Sum of Salgsbeløb (faktisk)", xlSum
        .AddDataField ActiveSheet.PivotTables("PivotTable10").PivotFields("Kostbeløb (faktisk)"), "Sum of Kostbeløb (faktisk)", xlSum
        .AddDataField ActiveSheet.PivotTables("PivotTable10").PivotFields("Avance"), "Sum of Avance", xlSum
        .PivotFields("Sum of Salgsbeløb (faktisk)").NumberFormat = "#,###,##0.00"
        .PivotFields("Sum of Kostbeløb (faktisk)").NumberFormat = "#,###,##0.00"
        .PivotFields("Sum of Avance").NumberFormat = "#,###,##0.00"
    End With

End Sub

Den virker upåklageligt i Excel 365. Udfordringen er at den fejler når jeg går over i Excel 2007.

Den markerer dette:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        strTabellen, Version:=6).CreatePivotTable TableDestination:=adrAktuelCelle, TableName:="PivotTable10", DefaultVersion:=6

Jeg har prøvet at optage netop skridtet der i Excel 2007, men udover at den tilføjer Version:=xlpivottableversion har jeg svært ved at spotte forskellen.

Her er det optagede:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Ark1!R1C1:R3C5", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="Ark4!R3C1", TableName:="Pivottabel1", DefaultVersion:= _
        xlPivotTableVersion12

Kan nogen hjælpe mig videre?
Avatar billede supertekst Ekspert
22. september 2016 - 13:48 #1
"TableName:="PivotTable10", DefaultVersion:=6"

Kunne det tænkes at version / versioner. ikke passer til 2007?
Avatar billede kim1a Ekspert
23. september 2016 - 11:49 #2
Det er nok noget i den stil, men jeg har prøvet at tilrette det til den version som det optagede viste:
"TableName:="PivotTable10", DefaultVersion:=xlpivottableversion12"
Avatar billede kim1a Ekspert
23. september 2016 - 18:51 #3
Uden at det virkede må jeg hellere tilføje :-) :-(
Avatar billede Max_P_Larsen Seniormester
27. september 2016 - 09:33 #4
Ifølge Microsofts dokumentation (https://msdn.microsoft.com/en-us/library/office/ff837609.aspx) er værdien for xlPivotTableVersion12 (Excel 2007-version) lig med 3, og jeg vil mene, du skal bruge enten 3 eller xlPivotTableVersion12 for både "Version" og "DefaultVersion" i koden, dvs.

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        strTabellen, Version:=3).CreatePivotTable TableDestination:=adrAktuelCelle, TableName:="PivotTable10", DefaultVersion:=3


Mvh Max
Avatar billede kim1a Ekspert
27. september 2016 - 14:21 #5
Hej Max
Det er så smukt - så kørte skidtet upåklageligt, sjovt at jeg ikke kunne rette til xlPivotTableVersion12, men 3 i stedet virkede.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester