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

Opgelost Variable data in grafieken gebruiken in VBA

Dit topic is als opgelost gemarkeerd

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
281
Ik heb een excel file met daarin diverse tabladen
Ik het tabblad "meterstanden" staat de data
Ik wil graag in een nieuw tabblad "grafiek" de data van de materstanden verwerken

Ik heb al een deel deel werkend maar ik kan de puntjes niet op de i zetten.

Ik zoek in kolom "t" van sheet meterstanden de laatste cel op (variable "laatstrg"
Dan wil ik een aantal dag terug kijken en gebruik daar de variable "dtk"voor

Ik wil in me grafiek de data van sheet "meterstanden" gebruiken van kolom "T"en "U" en "B"
De range wordt bepaald door (( laatstrg - dtk)
Kolom "B" moet onderop de datum zijn
Kolom "T" en "U" is data

De hoogte van de x-as waarde is ook een variable
"Hoogste" uit de range van kolm "T"en "U"

Ik ben zelf niet zo handig met VBA maar al doende leert men
Graag niet te moeilijk zodat ik ook nog een beetje begrijp wat er gebeurt
..
Wie kan me op weg helpen


Code:
Sub test()
 
    
    Dim shmeterstanden As Worksheet
    Dim shgrafiek As Worksheet
    Dim laatstrg As Long
    Dim dtk As Long
    Dim hoogste As Long
    Set shmeterstanden = Worksheets("meterstanden")
    Set shgrafiek = Worksheets("grafiek")
    dtk = 30 ''dagenterugkijken
    Dim test As String
    
    laatstrg = shmeterstanden.Range("T65536").End(xlUp).row
    hoogste = WorksheetFunction.Max(shmeterstanden.Range(("T" & laatstrg - dtk & ":U" & laatstrg))) ''Hoogste waarde binnen de range
    
    ActiveSheet.ChartObjects("Grafiek 1").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    ActiveChart.ChartArea.Select
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = 0
    ActiveChart.Axes(xlValue).MaximumScale = hoogste
    Selection.TickLabels.NumberFormat = "#.##0"
    ActiveChart.FullSeriesCollection(3).Select
    
    
    ''''meterstand 1
    ActiveChart.FullSeriesCollection(2).Values = "=Meterstanden!$T$" & laatstrg - dtk & ":$T$" & laatstrg
    
    '''meetstand 2
    ActiveChart.FullSeriesCollection(3).Values = "=Meterstanden!$U$" & laatstrg - dtk & ":$U$" & laatstrg
    
    ''datum
    ActiveChart.FullSeriesCollection(1).XValues = "=Meterstanden!$B$" & laatstrg - dtk & ":$B$" & laatstrg
    
End Sub
 

Bijlagen

  • Help.xlsm
    78,8 KB · Weergaven: 5
ik heb er een spreidingsgrafiek van gemaakt
 

Bijlagen

  • Help.xlsm
    85,5 KB · Weergaven: 7
Heel erg bedankt
Ik heb de grafiek in me eigen sheet verwerkt
en een paar aanpassingen gemaakt.

Code:
dtk = InputBox("Please enter a number", "Create Invoice Number", dtk)
Hiermee kan ik de dagen om terug te kijken ingeven.

Code:
.MaximumScale = hoogste * 1.1
Dit ziet er net wat beter uit.

Heel erg bedankt verder werkt het perfect
 
Ik heb de grafiek in me eigen sheet verwerkt
Dit ziet er net wat beter uit.
Echt niet.... Waar heb je dat vreselijk lelijke gebruik van 'me' geleerd? Ga direct je geld terugvragen....
 
je kan anders ook de grote vertikale rasterlijnen telkens op de maandag laten beginnen. Dat betekent dus dat je eventueel een paar dagen terug moet gaan, zodat je meer dan dtk" dagen zal tonen, maar de grafiek leest iets gemakkelijker als je die "vaste" maandag hebt. (In VBA is dat geen al te moeilijke aanpassing)
 

Bijlagen

  • Help.xlsm
    90,5 KB · Weergaven: 2
Klopt Het werkt wel
Ik had de code in mijn sheet geplakt
Daar deed hij het niet
Maar er staat ook nog een ander opmaak aan
Die de regels om en om een kleurtje geeft
Ik denk dat de fout is
FF zoeken hoe ik dat eruit kan halen
Toch bedankt allemaal.
 
Terug
Bovenaan Onderaan