Hvis du skal bruge værdien i en celle burde det derfor ikke være nødvendigt med VBA. Skal du derimod bruge værdien i en variabel, som skal tilpasses i noget andet VBA-kode kunne det godt være man med fordel kunne hente værdien via VBA.
Jeg skal bruge det til en lillebitte ting, nemlig til at placerer værdietiketterne, altså hvis serieværdien er større end den foregående værdi så skal den placerer etiketten over kurven og hvis værdien er mindre end den foregående så skal den placerer den under kurven - for ikke at "forstyrrer" grafen....
Jeg kan gøre det manuelt - flytte etiketten, men da det er et pivotdiagram så ændres det tilbage hver gang der ændres en eller anden dimension...
Man kan tildele værdier til serierne - så det burde sq da være muligt at hente den, måske man bare kan hente etiketteksten ??? jeg har rodet lidt med det i dag og vil rode videre nu - men hvis du har løsningen ville jeg blive glad...
Prøv at markere dit diagram og kør denne makro, der flytter etiketterne. Bemærk at den kun bruger een serie.
'Denne sub er til manuelt brug 'select diagrammet og kør den Sub Set_Labels() Dim y As Long Dim c As Range Dim YRange As Range Dim MyChart As Chart Dim vYRange Dim lastc As Variant If ActiveChart Is Nothing Then MsgBox ("Marker diagramet før makroen køres") Exit Sub Else Set MyChart = ActiveChart 'ChartObjects(1).Chart End If
vYRange = Split(MyChart.SeriesCollection(1).Formula, ",") Set YRange = Range(vYRange(2)) y = 0 Application.ScreenUpdating = False For Each c In YRange y = y + 1 With MyChart.SeriesCollection(1).Points(y).DataLabel If y > 1 Then If c.Value > lastc Then .Position = xlLabelPositionAbove Else .Position = xlLabelPositionBelow End If End If End With lastc = c.Value Next Application.ScreenUpdating = True End Sub
Du henter i pivottabellen - fint nok - men når jeg nu har subtotaler i tabellen så bliver der for mange Y'er.... eller har jeg misforstået koden? Jeg får i hvert fald denne fejl:
"Kan ikke angive egenskaben Points for klassen Series"
Men på den anden side - det er heller ikke nødvendigt at have totaler på disse.. men for en anden gang skyld - tror man kan løse det...? Kan du kort forklare hvad koden helt præcis gør.... Og smid så venligst et svar... så jeg kan belønne dig...!!!
split deler serien op ved ; YRange skal være 2. led fra serien (værdierne) for hver celle i værdiserien skal den se efter om værdien er større end den foregående værdi og placerer labelen derefter
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.