• 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.

Grafiek in Excel met instelbare limieten voor Y-as

Status
Niet open voor verdere reacties.

anton44

Verenigingslid
Lid geworden
20 mei 2005
Berichten
1.597
Voor verschillende gebruikers van het model is het wenselijk de max. grens voor de beide Y-assen in cellen van het werkblad vast te leggen.
Zijn daar mogelijkheden toe ?
 

Bijlagen

  • FG-2019-12-04_152121.jpg
    FG-2019-12-04_152121.jpg
    213,5 KB · Weergaven: 47
  • FG-2019-12-04_152006.jpg
    FG-2019-12-04_152006.jpg
    200,6 KB · Weergaven: 38
Laatst bewerkt:
Alleen met VBA helaas.

Bedankt voor je reactie. Met VBA ben ik als leek al aan het stoeien. Met de macrorecorder al een stuk verder gekomen, maar mis nog wat details in de code.
Misschien kun je daarmee verder helpen.
De bedoeling is dat de waarden in cel BU4 resp BU5 in regel 70 en 90 verwerkt worden

Vergeef me als daar domme fouten in staan :-(

Code:
Sub Macro3H()
10
15  Application.ScreenUpdating = False
20
25    With Sheets("Energie")
30        Tempname1 = Range("BU4") 'Op werkblad "Energie" cel BU4 staat de max waarde voor kWh (bv 600)
35        Tempname2 = Range("BU5") 'Op werkblad "Energie" cel BU5 staat de max waarde voor % (bv .21)
40     End With
45
50    Sheets("Real_progn").Select 'tabblad van de grafiek
55    ActiveChart.ChartArea.Select
60    ActiveChart.Axes(xlValue).Select
65    With Sheets("Energie")
70    ActiveChart.Axes(xlValue).MaximumScale = Range("Tempname1")
75        'ActiveChart.Axes(xlValue).MaximumScale = 600
80    ActiveChart.Axes(xlValue, xlSecondary).Select
85        'ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = 0.21
90    ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = Range("Tempname2")
95    Sheets("Energie").Select
100
110   Application.ScreenUpdating = True
115
End Sub
 
Zo wellicht?
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range("BU4")

Of
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range(Tempname1)
als BU4 de naam Tempname1 heeft
 
Laatst bewerkt:
Zo wellicht?
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range("BU4")

Of
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range(Tempname1)
als BU4 de naam Tempname1 heeft

Bedankt.
In die richting was ik ook bezig maar krijg op regel 70 een foutmelding.
FG-2019-12-04_184325.jpg
FG-2019-12-04_184347.jpg
 
In een plaatje is het moeilijk om code te plaatsen.;)
 
Vermoedelijk.
Code:
= range("Tempname")[COLOR=#ff0000].value[/COLOR]
 
Voorbeeld toegevoegd om zelf te kunnen testen.;)
Waarin 3 macro's.
1. De gewenste macro3 met ophalen van waardes (maar werkt nog niet, ondanks toevoeging .Value)
2. GraphH en GraphT die wel werken maar met variabele waarden in de code
 

Bijlagen

  • Voorbeeld1.xlsm
    236,7 KB · Weergaven: 16
Een waarde uit een cel in een variabele zetten in VBA:
Code:
25    With Sheets("Energie")
30      Tempname1 = .Range("BU4") 'Op werkblad "Energie" cel BU4 staat de max waarde voor kWh (bv 600)
35      Tempname2 = .Range("BU5") 'Op werkblad "Energie" cel BU5 staat de max waarde voor % (bv .21)
40    End With
is NIET hetzelfde als een waarde uit een bereiknaam halen:
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range("Tempname1").Value
Om statement op rij 70 te laten werken moet je:

OF het statement aanpassen naar:
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Tempname1
OF de cel BU4 de naam "TempName1" geven in Excel (die cel selecteren, op de tab Formules de knop Naam definieren indrukken en een nieuwe naam maken die naar die cel verwijst). Dit laatste heeft overigens de voorkeur.
Als je de waarde uit Tempname1 vervolgens vaker nodig hebt dan 1 keer in je code, verander dan regels 25-40 in:
Code:
25    With Sheets("Energie")
30      Tempname1 = .Range("Tempname1") 'Op werkblad "Energie" cel BU4 staat de max waarde voor kWh (bv 600)
35      Tempname2 = .Range("Tempname2") 'Op werkblad "Energie" cel BU5 staat de max waarde voor % (bv .21)
40    End With
 
Een waarde uit een cel in een variabele zetten in VBA:
Code:
25    With Sheets("Energie")
30      Tempname1 = .Range("BU4") 'Op werkblad "Energie" cel BU4 staat de max waarde voor kWh (bv 600)
35      Tempname2 = .Range("BU5") 'Op werkblad "Energie" cel BU5 staat de max waarde voor % (bv .21)
40    End With
is NIET hetzelfde als een waarde uit een bereiknaam halen:
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Range("Tempname1").Value
Om statement op rij 70 te laten werken moet je:

OF het statement aanpassen naar:
Code:
70    ActiveChart.Axes(xlValue).MaximumScale = Tempname1
OF de cel BU4 de naam "TempName1" geven in Excel (die cel selecteren, op de tab Formules de knop Naam definieren indrukken en een nieuwe naam maken die naar die cel verwijst). Dit laatste heeft overigens de voorkeur.
Als je de waarde uit Tempname1 vervolgens vaker nodig hebt dan 1 keer in je code, verander dan regels 25-40 in:
Code:
25    With Sheets("Energie")
30      Tempname1 = .Range("Tempname1") 'Op werkblad "Energie" cel BU4 staat de max waarde voor kWh (bv 600)
35      Tempname2 = .Range("Tempname2") 'Op werkblad "Energie" cel BU5 staat de max waarde voor % (bv .21)
40    End With

Jan Karel, dat was um. Bedankt.

Nu maar hopen dat geen zwarte piet/roetveegpiet je meeneemt. Je bent en blijft zeer waardevol op dit en andere fora :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan