• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Assen grafiek automatisch laten schalen

Status
Niet open voor verdere reacties.

willemtim

Gebruiker
Lid geworden
19 apr 2007
Berichten
44
Beste lezer,
Ik vraag me af of het mogelijk is dat een grafiek zich automatisch schaalt. Zo'n bubble graph doet dat gedeeltelijk, maar net niet helemaal hoe ik het wil. Als ik bijvoorbeeld een bol met de x,y coordinaten [1,2] heb, dan wil ik dat de x-as begint bij 1 en de y-as bij 2. Als ik een 2de bol heb met de x,y coordinaten [3,5], dan moet de max van de grafiek voor 3 en 5 zijn voor respectivelijk x en y. De uiteindelijke grafiek heeft dan de schaalverdeling van x [1,3] en y [2,5].
Ik hoop dat jullie begrijpen wat ik bedoel, lastig om het goed onder woorden te brengen.

bedankt voor de moeite
 
Als je bij de assen de schaalverdeling niet zelf instelt (lees: de vinkjes bij maximum, minimum, ... ingeschakeld laat), dan doet Excel zelf het nodige om een automatische en passende schaalverdeling te tonen.
 
Klopt, maar hij rekt de grafiek niet helemaal uit tot de uiterste waarden (zowel minimaal als maximaal). Dit moet ik dan zelf handmatig doen, maar wanneer ik de input verander dan ligt mijn assen-schaling weer op z'n gat....Dan zou ik 'm weer handmatig aan moeten passen. Ik hoopte dat er misschien ergens een instelling was waar je iets als =MIN(A1;F1) in kan vullen zodat de kleinste waarde uit die rij als as-minimumpunt wordt ingevuld.
Toch bedankt voor je snelle respons!
 
Hang dan eens een klein voorbeeldbestandje bij waaruit blijkt dat de schaling niet verloopt zoals gewenst. Met fictieve data uiteraard.
 
Dank je voor je snelle reacties zeg! Je bent sneller dan ik kan reageren :)
De bijlage zit erbij. Ik ben benieuwd!
 

Bijlagen

Het voorstel dat je aandroeg, middels een functie als =MIN(A1;F1) de schaal 'berekenen' - is zo gek nog niet. Dit kan je wel enkel met VBA realiseren.

Ik zou voorstellen om de macro recorder eens op te zetten en dan wat dingetjes aan te passen. Bekijk de aldus gegenereerde code aandachtig, en je hebt een idee van de eigenschappen die je in je VBA-code kan/moet aanpassen.
 
Een simpel maar goed idee!

Private Sub CommandButton1_Click()
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = Min("E7:H7")
.MaximumScale = Max("E8:H8")
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
End Sub

Het gaat alleen fout omdat hij de term min/max of minimum/maximum niet herkent. Is hier een andere codering voor nodig zoals bijv: SelectSmallest???of iets dergelijks
We komen al een heel eind iig,
dank
 
Ik heb zojuist een kleine aanpassing gemaakt. Ik laat excel simpel de kleinste en grootste waarde berekenen door =min/max(...:...).
In de macro geef ik aan dat de grafiek geschaald moet worden naar de waaerden van die 4 aangemaakte cellen. Maar volgens mij maakt de macro geen onderscheidt tussen een x-as en een y-as.
In de bijlage zit het bestandje
Dit is de macro

Private Sub CommandButton1_Click()
ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = I7
.MaximumScale = J7
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With

ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = I8
.MaximumScale = J8
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With

End Sub
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan