Avatar billede mal Nybegynder
07. april 2010 - 14:25 Der er 2 kommentarer og
1 løsning

Excel VBA - Ændre datakilde

Jeg har en pivottabel ved navn pivottabel1 i ark1

Kan man via VBA ændre datakilden ... således at den automatisk ændre datakilden.

I øjeblikket går data fra "Beregningsark!$A$1:$S$69", men jeg vil gerne at den automatisk finder ud af hvor mange rækker der er ned ... altså via en count.row ... og hvis data ændres til at være 71 rækker ... så ændres datakilden i pivottabel1 til "Beregningsark!$A$1:$S$71".
Avatar billede jean01ad Praktikant
12. april 2010 - 12:55 #1
Hvis der kun er de to valgmuligheder, kan du bruge en simpel "if sætning" Som eksempelvis

Range A1 har jeg bare sat som det sted, hvor du får info om, hvorvidt der er 69 eller 71 rækker.

Sourcedata skal ændres, så den passer med dine række/kolonne specifikationer og placering - selvfølgelig skal du også ændre pivottabellens navn.


If Range("A1").Value = 69 Then

ActiveSheet.PivotTables("Pivottabel1").ChangePivotCache ActiveWorkbook. _PivotCaches.Create(SourceType:=xlDatabase,
SourceData:="Ark1!R6C4:R8C7", _
Version:=xlPivotTableVersion12)

Else
ActiveSheet.PivotTables("Pivottabel1").ChangePivotCache ActiveWorkbook. _PivotCaches.Create(SourceType:=xlDatabase,
SourceData:="Ark1!R6C4:R9C7", _
        Version:=xlPivotTableVersion12)

End If

Jeg ved ikke om det kan bruges men i mangle på andre svar, så er det da en mulighed :-)
Avatar billede mal Nybegynder
15. april 2010 - 12:46 #2
jean01ad, jeg havde ikke fået det til at virke uden din hjælp - tak ... Så jeg vil meget gerne have et svar

Min løsning kom til at se således ud (det kan godt være at jeg har taget varible med som ikke bliver brugt).

Dim Wbook As Workbook  ' Workbook (Regnearkets navn)
Dim Ark1 As Worksheet
Dim Wsheetdata As Worksheet ' Worksheet ("sheet1")
Dim Wsheetx As Worksheet ' Worksheet ("variable")
Dim Pivottabel1 As PivotTable
Dim PivotCache1 As PivotCache
Dim PivotRange As Range
Dim G As Integer
Dim H

' Definere Workbook og sætte den til active
Set Wbook = Workbooks("PL Stat v  0.99.xls")
Wbook.Activate

' Definere Worksheets
Set Ark1 = Worksheets("Ark1")
Set Wsheetdata = Worksheets("Beregningsark")

G = Wsheetdata.Range("A1").CurrentRegion.Rows.count - 1
Set PivotRange = Range("A1:S" & G)
Ark1.Activate
Set Pivottabel1 = ActiveSheet.PivotTables(1)
Set PivotCache1 = Pivottabel1.PivotCache
H = Wsheetdata.Name & "!" & Application.ConvertFormula(PivotRange.Address, xlA1, xlR1C1)

ActiveSheet.PivotTables(1).ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:=H)
Avatar billede jean01ad Praktikant
15. april 2010 - 12:52 #3
ok - er glad for at høre, at du fik det til at virke.
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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