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

Macro om automatisch grafiek te maken

Status
Niet open voor verdere reacties.

rick1968

Nieuwe gebruiker
Lid geworden
12 okt 2016
Berichten
4
Ik zoek een manier om snel grafiekjes te maken van data uit een tabel.
Als voorbeeld heb ik een Excel bestandje bijgevoegd. De bedoeling is dat ik van elk land afzonderlijk een grafiekje kan maken.
Bekijk bijlage voorbeeld Excel.xlsx

Als ik het handmatig zou moeten doen moet ik:
- de data selecteren
- knop insert
- insert line-chart
- kiezen voor de juiste linechart
- enz.

Ik zou graag de gewenste data willen selecteren en dan via een macro automatisch de gewenste grafiek genereren.
Iemand een idee?

Alvast bedankt!

Rick
 
Na wat bijschaven van met de macrorecorder gegenereerde code kom je uit op zoiets:
Code:
Sub tsh()
    Dim Rng As Range
    
    Set Rng = Selection
    ActiveSheet.Shapes.AddChart.Select
    With ActiveChart
        .SetSourceData Source:=Rng
        .ChartType = xlLine
        .Axes(xlCategory).Select
        .SeriesCollection(1).XValues = "='Sheet1'!$B$1:$M$1"
    End With
End Sub

Selecteer bijvoorbeeld cellen A4:M4 en voer de macro uit om de grafiek van Finland te maken.
 
Hoi, ik heb het geprobeerd en het werkt bijna goed. Ik heb een kleine aanpassing gedaan, heb Sheet1 aangepast naar ActiveSheet (zie hieronder) zodat het genereren van de grafiek ook werkt als je op een ander tabblad dan sheet1 zit. Het enige dat nog niet werkt is de datum op de x-as. Hier staan allemaal nullen. Is dit ook nog aan te passen?


Sub Autografiek()
Dim Rng As Range

Set Rng = Selection
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.SetSourceData Source:=Rng
.ChartType = xlLine
.Axes(xlCategory).Select
.SeriesCollection(1).XValues = "='ActiveSheet'!$B$1:$M$1"
End With
End Sub
 
Je moet de naam van het blad meegeven.

Code:
.SeriesCollection(1).XValues = "='" & ActiveSheet.Name & "'!$B$1:$M$1"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan