Autoscale y assen van alle grafieken binnen een sheet (VBA)

Status
Niet open voor verdere reacties.

Djani

Gebruiker
Lid geworden
16 mrt 2016
Berichten
67
Hoi allemaal,

Ik heb in de bijlage een voorbeeldrapportage bijgevoegd. Daar zit een commandbutton welke de grafiek laat aanpassen aan de minimum/maximum waarde. Echter, dit is voor slechts een grafiek. Ik moet straks tientallen van dit soort grafieken gaan maken en deze in een sheet plaatsen. Dit ga ik doen omdat ik deze via "Paste Link" automatisch wil laten updaten iedere maand vanuit PowerPoint. Echter, betekent dit dat ik dan per grafiek een minimum/maximum waarde moet gaan vaststellen of is er een andere/simpelere methode met VBA?

Bekijk bijlage Voorbeeldrapportage.xlsx

In de tweede sheet vindt je de dataset die gebruikt wordt voor de grafiek. Ik ben van plan deze straks 9 keer te kopieren (het aantal modellen van het bedrijf waar ik werk) + het aantal landen. Dat wil dus zeggen dat ik tig grafieken (eenmalig) moet gaan maken om het via deze manier automatisch te laten updaten vanuit PowerPoint. Heeft iemand van jullie suggesties?

Alvast ontzettend bedankt!

Mvg,

Djani
 
Je hebt geen code in jouw voorbeeldje staan. Dus de knop zal niets doen. Plaats even een voorbeeldje met de code zoals je die nu hebt voor 1 grafiek.
 
Ah, vergeten. Bij deze:

Code:
Private Sub CommandButton1_Click()

 Dim objCht As ChartObject

 For Each objCht In ActiveSheet.ChartObjects
 With objCht.Chart.Axes(xlValue)
 .MaximumScale = ActiveSheet.Range("Axis_max").Value + 0.1
 .MinimumScale = ActiveSheet.Range("Axis_min").Value - 0.1

 End With
 Next objCht

End Sub
 
Als de grafieken altijd gekoppeld zijn aan een draaitabel dan kan je deze proberen.

Code:
Sub VenA()
Dim objCht As ChartObject
For Each objCht In ActiveSheet.ChartObjects
    With objCht.Chart
        .Axes(xlValue).MinimumScale = Application.Min(.PivotLayout.PivotTable.DataBodyRange.SpecialCells(12)) - 0.01
        .Axes(xlValue).MaximumScale = Application.Max(.PivotLayout.PivotTable.DataBodyRange.SpecialCells(12)) + 0.01
    End With
Next objCht
End Sub

De - en + waarde heb ik even aangepast omdat het effect anders bijna niet te zien is.
 
Thanks mister. Dit is inderdaad precies wat ik nodig had. Ik ben overigens ook op zoek naar wat advies m.b.t. de grafieken.

Op dit moment heb ik 9 grafieken (de 9 modellen die het bedrijf verkoopt) onder elkaar gezet die ieder voorzien zijn van een eigen draaitabel (en slicers). Echter, er zijn tig landen waar het bedrijf actief in is, dus dat zou betekenen dat ik 9 keer x landen = tig grafieken moet gaan maken om van ieder model (en de bijbehorende concurrenten) de performance in kaart te brengen. Tuurlijk zou ik het dynamisch kunnen maken, maar aangezien ik van plan ben deze allemaal via "Paste Link" te linken naar PowerPoint, is dat helaas geen optie.

Heb(ben) jij/jullie toevallig nog suggesties?

Mvg,

Djani
 
Even voorop gesteld dat het een te groot project voor een helpmij vraag is, in ieder geval voor mij, en dat ik geen kennis van het manipuleren van objecten in Powerpoint heb.:d

Zelf zou ik een macro maken die afhankelijk van hoe het in PP moet komen een lus (dat worden er wel meerdere) maken die
- de rapportfilters van de draaitabellen aanpast
- de grafieken aanpast
- de grafieken in de juiste PP sectie zet
- de pp opslaat

Als je steeds gebruik maakt van dezelfde tabel voor het maken van de draaitabellen en de grafieken. Dan zou ik één draaitabel en één grafiek gebruiken.
 
Het is eenmalig manueel werk via "Paste Link" en het in de juiste positie zetten, dus er is geen VBA script nodig om alle objecten in een bepaalde slide in PP (op maandelijkse basis) te krijgen.
Het enige wat vervelend is, is dat beide manieren (of 1 dynamische draaitabel + grafiek, of per grafiek een aparte draaitabel) zijn voor- en nadelen heeft. Ik vraag mij alleen af wat wijsheid is.

Als er met 1 dynamische draaitabel gewerkt gaat worden, dan is dat voor de rapportage veel handiger natuurlijk. Echter, het gaat vervelend worden als er eerst op een bepaalde criteria geklikt moet worden, vervolgens copy-paste in PP en dit tig keer herhalen. Dat gaat veel tijd kosten.

Ik ben aan het bedenken wat de juiste oplossing is. Als ik hier iets op heb gevonden, dan zal ik het hier ook plaatsen voor de rest. Andere suggesties zijn zoals altijd zeer welkom!
 
Blijkbaar heb je de eerste zin #6 gemist. Volgens mij is de vraag van dit draadje opgelost. En kan je ook als zodanig markeren.

Je kan beter ook voor de leesbaarheid van dit forum even een nieuwe vraag aanmaken met als onderwerp iets van 'variabele draaitabelgrafieken automatisch in Powerpoint plaatsen'.
 
Altijd handig als je de reactie waarop ik reageer verwijdert;)

Nb. De bijlage in jouw nieuw post is niet te openen. En volgens mij klopte het plaatje niet met de bijlage die je hier geplaatst had.
 
Laatst bewerkt:
Haha, thanks voor de heads-up. Als het off-topic is, dan is het inderdaad handig om de post te verwijderen dacht ik zo. Ik zal even kijken naar de nieuwe thread, thanks again!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan