13. august 2002 - 11:11Der er
10 kommentarer og 1 løsning
Grafområde via variabler
Hejsa, Et lille problem der består i at der skal laves en graf af et områdes data. Området har skiftende størrelse og fastlægges via variabel r=rækker og k=kol., jvf nedenstående makro. Problemet er bare at den ikke virker, hvad er der galt ?
Sub LavePivot() ' ' LavePivot Makro ' Makro indspillet 13-08-2002 af Jensena '
' Dim række As Integer, kol As Integer 'find antal rækker og kol i data omtådet Range("L3").Select række = 1 Do While ActiveCell.Value <> "" række = række + 1 ActiveCell.Offset(1, 0).Select Loop
Range("L3").Select kol = 1 Do While ActiveCell.Value <> "" kol = kol + 1 ActiveCell.Offset(0, 1).Select Loop kol = kol - 1 r = række + 3 k = kol + 12
Range("L3").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'Ark1 (2)'!R3C12:R[r]C[&k]").CreatePivotTable TableDestination:=Range("B3"), _ TableName:="Pivottabel1" ActiveSheet.PivotTables("Pivottabel1").SmallGrid = False ActiveSheet.PivotTables("Pivottabel1").AddFields RowFields:="Varenr", _ ColumnFields:="dato" ActiveSheet.PivotTables("Pivottabel1").PivotFields("Pris").Orientation = _ xlDataField Range("D6").Select With ActiveSheet.PivotTables("Pivottabel1").PivotFields("Sum af Pris") .NumberFormat = "#.##0,00" End With End Sub
jeg har forkortet den lidt,alj prøv at teste og vend så tilbage.
Sub LavePivot() Dim r As Range Set r = [L3].CurrentRegion With ActiveWorkbook.PivotCaches.Add(xlDatabase, r.Address) .CreatePivotTable TableDestination:=Range("B3"), TableName:="Pivottabel1" End With With ActiveSheet.PivotTables("Pivottabel1") .SmallGrid = False .PivotFields("Dato").Orientation = xlColumnField .PivotFields("Varenummer").Orientation = xlRowField .PivotFields("Pris").Orientation = xlDataField .PivotFields("Sum af Pris").NumberFormat = "#,##0.00" End With End Sub
Hej bak, den er kortere, men virker ikke, idet bl.a. pivottabellen skal laves i ark2, men det væsentligste er at jeg skal bruge oprællingen af rækker hhv kol og ikke currentregion. (Makroen skal kunne redigeres af andre, derfor skal den være step-by-step i vba-koden.) mvh alj
Ok. Men så virker din egen heller ikke så godt, for du skifter ikke ark undervejs. dvs dine tællere bruger det aktive ark (der hvor pivoten også dannes mens data hentes fra ark1 (2). Jeg har ændret den lidt, men du skal starte hvor dine data er Ark1 (2) og du skal ha' et Ark2. Sub test() ' ' LavePivot Makro ' Makro indspillet 13-08-2002 af Jensena '
' Dim række As Integer, kol As Integer 'find antal rækker og kol i data omtådet Range("L3").Select række = 1 Do While ActiveCell.Value <> "" række = række + 1 ActiveCell.Offset(1, 0).Select Loop
Range("L3").Select kol = 1 Do While ActiveCell.Value <> "" kol = kol + 1 ActiveCell.Offset(0, 1).Select Loop kol = kol - 1 r = række + 3 k = kol + 11
Range("L3").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select With ActiveWorkbook.PivotCaches.Add(xlDatabase, "Ark1(2)!R3C12:R" & r & "C" & k) .CreatePivotTable TableDestination:=Range("Ark2!B3"), TableName:="Pivottabel1" End With
Sheets("Ark2").Select
With ActiveSheet.PivotTables("Pivottabel1") .SmallGrid = False .PivotFields("Dato").Orientation = xlColumnField .PivotFields("Varenummer").Orientation = xlRowField .PivotFields("Pris").Orientation = xlDataField .PivotFields("Sum af Pris").NumberFormat = "#,##0.00" End With
Glimrende (og ja jeg havde også problem med at få den i ark2) og det er der stadig. Når jeg kører makroen går det glimrende indtil linien .CreatePivotTable TableDestination:=Range("Ark2!B3"), TableName:="Pivottabel1", så kommer denne: Fejlmed.: 1004, kan ikke åbne kildefilen 'Ark1(2)' til pivottabellen. mvh alj
linien With ActiveWorkbook.PivotCaches.Add(xlDatabase, "Ark1(2)!R3C12:R" & r & "C" & k) skal ændres så arknavnet passer med dit arknavn (kildedata) (måske bae et mellemrum)
yes, du har retder manglede et mellemrum. Den kører godt nu, men der er noget der undrer mig. Hver gang den køres får jeg "antallet af priser" og IKKE SUM af priser. Jeg har prøvet at indstille/køre flere makroer uden held, hvordan kan det være ? mvh alj
Ps. en grund til at den automatisk stiller sig med antal er at Pris ikke er i talformat, men i tekstformat og det kan man jo ikke summe. ellers er standard SUM.
Ihhh... altså, det var lige det der skulle til. - MANGE TAK'r. mvh alj
Synes godt om
Ny brugerNybegynder
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.