[Excel] Meerdere tabellen tegelijk naar grafieken convertere

Pagina: 1
Acties:
  • 392 views sinds 30-01-2008
  • Reageer

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Ik heb dus een excel document waarin meerdere tabellen op één pagina onder elkaar staan. Dus meer op deze manier:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
----------------------
[ tabel 1            ]
----------------------
[ naam 1 ][ waarde 1 ]
[ naam 2 ][ waarde 2 ]
[ naam 3 ][ waarde 3 ]
[ naam 4 ][ waarde 4 ]
----------------------
[ tabel 2            ]
----------------------
[ naam 1 ][ waarde 1 ]
[ naam 2 ][ waarde 2 ]
[ naam 3 ][ waarde 3 ]
[ naam 4 ][ waarde 4 ]
----------------------
[ tabel 3            ]
----------------------
[ naam 1 ][ waarde 1 ]
[ naam 2 ][ waarde 2 ]
[ naam 3 ][ waarde 3 ]
[ naam 4 ][ waarde 4 ]
----------------------
[ tabel 4            ]
----------------------
[ naam 1 ][ waarde 1 ]
[ naam 2 ][ waarde 2 ]
[ naam 3 ][ waarde 3 ]
[ naam 4 ][ waarde 4 ]

en op deze manier zo'n 200 tabellen.
Deze tabellen zijn steeds hetzelfde, (naam 1,2,3,4 ... 12 zijn maanden en waarde 1,2,3,4...12 zijn de gegevens in die maand)
ik wil deze allemaal in één grafiek krijgen, maar om dit allemaal handmatig te doen is onbegonnen werk. De tabellen zijn allemaal van gelijke grootte, dus dit moet makkelijk te realiseren zijn. Ik heb echter helemaal geen ervaring met macro's o.i.d.
Hoe los ik dit op?
Overigens: Degene die dit als scriptrequest ziet, heeft wellicht in zekere mate gelijk. Ik vind echter dat dit voor andere mensen ook handig kan zijn, dus laat deze please open :)

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Topicstarter
Goed, nog geen 24 uur, maar wel een nieuwe dag, dus nieuwe kansen :)

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 11:02
Je kan het beste beginnen met het opnemen van een macro, waarin je van 1 tabel een grafiek maakt, dan weet je alvast hoe je dat moet doen. Deze macro kan je dan in Visual Basic aanpassen en finetunen. Je kan bijvoorbeeld met een Do ... Loop Until alle tabellen doorlopen en van elk een gafiek maken. In een variabele kan je dan de beginrij van een tabel bijhouden en die aan het einde van de loop verhogen. Zeker als de tabellen allemaal even groot zijn is dat erg eenvoudig.

De help van Visual Basic is overigens erg uitgebreid. Met een beetje spelen kan je zo een mooie macro maken (zo ben ik ook begonnen :) ). Tip: Als je wilt weten wat een functie/eigenschap doet en welke opties die heeft, ga je met de cursor erop staan en druk je op F1. Je krijgt dan de help over deze functie of eigenschap, vaak ook nog met voorbeelden.

Ik hoop dat je hiermee verder kan komen.

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Inderdaad zo werkt het ook. Gewoon een macro'tje opnemen en dan een loop met
code:
1
2
3
for i = 1 to infinity
    ' voeg serie toe
next i

Als je eenmaal het opgenomen deel ziet van een line-graph waar je meerdere series invoegt, dan kun je binnen no-time een leuk VBA-macro'tje schrijven.

Voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    Charts.add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:= _
        Sheets("Sheet1").Range("D12:E24"), PlotBy:=xlColumns
    ' Values langs de y-as (van serie 1)

    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).XValues = _
        "=Sheet1!R12C4:R24C4"
    ' Values langs de x-as (van serie 1)

    ActiveChart.SeriesCollection(2).XValues = _
        "=Sheet1!R12C4:R24C4"
    ' Values langs de x-as (van serie 2)
    ActiveChart.SeriesCollection(2).Values = _
        "=Sheet1!R26C5:R38C5"
    ' Values langs de y-as (van serie 2)

    ActiveChart.SeriesCollection(3).XValues = _
        "=Sheet1!R12C4:R24C4"
    ' Values langs de x-as (van serie 3)
    ActiveChart.SeriesCollection(3).Values = _
        "=Sheet1!R40C5:R52C5"
    ' Values langs de y-as (van serie 2)

    ActiveChart.Location Where:=xlLocationAsObject, _
        Name:="Sheet1"

[ Voor 26% gewijzigd door CoRrRan op 12-03-2003 12:28 . Reden: Layout-change ]

-- == Alta Alatis Patent == --