Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [visual basic, excel, macro's] gegevens seriescollection uit cel halen (https://forum.scholieren.com/showthread.php?t=290212)

Ik 26-11-2002 15:17

[visual basic, excel, macro's] gegevens seriescollection uit cel halen
 
Ik heb wil door middel van een seriescollection van een grafiek een curve maken.

Code:

Charts.Add
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Sheets("data").Range("A1")
   
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).XValues = "=data!deel1"

In bovenstaand geval wordt er verwezen naar een gedefineerde label (define label). Ik wil echter dat er wordt verwezen naar een cel met de gegevens over welk bereik het gaat.

In bijv. cel A1 staat een range van C10:C20 gegeven, deze gegeven range dient ingelezen te worden en toegepast op de seriescollection.

Hoe kan ik dat doen? Het lukt me maar niet.

iamcj 27-11-2002 16:50

Ik denk dat je ieder gegevensbereik (C10:C20) enz. apart moet aangeven. Heb dit nog nooit gedaan, maar volgens mij worden alleen de absolute waarden gebruikt.

Ik zou het proberen op te nemen, als dat lukt, is er ook een macro van te maken.

Ik 27-11-2002 18:30

Citaat:

iamcj schreef:
Ik denk dat je ieder gegevensbereik (C10:C20) enz. apart moet aangeven. Heb dit nog nooit gedaan, maar volgens mij worden alleen de absolute waarden gebruikt.

Ik zou het proberen op te nemen, als dat lukt, is er ook een macro van te maken.

Met het apart aangeven van het gegevensbereik bedoel je daarmee het bereik aangeven in een bepaalde cel? Dat zeg ik toch ook in mijn eerste post? :S

Hoe zal je dit dan moeten opnemen?

iamcj 27-11-2002 18:50

Kweet niet precies wat je aan het doen bent,

Maar ik bedoelde dat ik denk dat je niet kan verwijzen naar A1 (relatief)
Maar wel naar het bereik zelf. (C20:C30) (absoluut)

label
A1 -> c20:c30
A2 -> c31:c40
A3 -> c41:c50

Ik denk

label
c20:
c30
label
c31:
c40
label
c41:
c50

Dus je grafiekreeksen nader specificeren?

Ik 27-11-2002 19:54

Citaat:

iamcj schreef:
Kweet niet precies wat je aan het doen bent,

Maar ik bedoelde dat ik denk dat je niet kan verwijzen naar A1 (relatief)
Maar wel naar het bereik zelf. (C20:C30) (absoluut)

label
A1 -> c20:c30
A2 -> c31:c40
A3 -> c41:c50

Ik denk

label
c20:
c30
label
c31:
c40
label
c41:
c50

Dus je grafiekreeksen nader specificeren?

Indien ik verwijs naar de inhoud van cel A1 waarin een range staat aangegeven hoeft dit niet perse een relatieve verwijzing te zijn.

Voglens mij heb jij een verkeerde interpretatie van een relatieve en absolute verwijzing.
Het maakt niet uit of ik absoluut dan wel relatief naar een bepaalde cel -waarin de range staat gegeven- verwijs.

Indien ik er een label aangeef zoals in jou voorbeeld dan kan ik de range net zo goed defineren. De range die het label aangeeft kan ik niet zomaar ergens in een cel zetten: ik kan niet zeggen dat label1 de range gegeven in cel A1 is...tenzij ik de manier te weten kom om dit zo te verwijzen.


Leuk he, visual basic :rolleyes:

iamcj 28-11-2002 11:26

Ja zeker;)

K'heb is even in Excel gekeken en snap je probleem nu denk ik.

Denk niet dat het kan omdat je nu eenmaal verwijst naar cellen en een cel kan niet wat anders zijn in geval van een Value.

Weet niet wat je wil met die macro, maar kan je de grafiek niet totaal vervangen door een nieuwe met de extra curve opgenomen in het eerste stuk? Of een andere omweg?

ActiveChart.SetSourceData Source:=Sheets("data").Range("A1"+curve)

Ik 28-11-2002 18:37

Citaat:

iamcj schreef:
Ja zeker;)

K'heb is even in Excel gekeken en snap je probleem nu denk ik.

Denk niet dat het kan omdat je nu eenmaal verwijst naar cellen en een cel kan niet wat anders zijn in geval van een Value.

Weet niet wat je wil met die macro, maar kan je de grafiek niet totaal vervangen door een nieuwe met de extra curve opgenomen in het eerste stuk? Of een andere omweg?

ActiveChart.SetSourceData Source:=Sheets("data").Range("A1"+curve)

Ik heb een reeks data waaruit ik een grafiek maak. Deze grafiek bestaat uit 3 delen die ik opsplits waardoor ik m.b.v. 3 liniaire curves de grafiek kan 'beschrijven' De snijpunten van deze lijnen (2) heb ik nodig omdat dit karakteristieke punten zijn die ik kan vergelijken met andere waarden.
Die grafiek heb ik dus maar tijdelijk nodig, maar het leek me handig als ik het bereik dat ik gebruik eenvoudig in een cel kan zetten omdat ik dan later altijd nog kijken welk bereik ik gebruikt heb. Dan hoef ik de grafieken niet te bewaren: Grafieken nemen mij teveel plek in en het wordt er neit voerzichtelijker op. Maar de belangrijkste reden is toch wel dat ik de range vanuit een cel gemakkelijk aan zou kunnen passen.

Wat bedoel je precies met dat laatste stuk wat jij zei?

Het lukt me nu wel op een andere manier, alhoewel die langer duurt en de gebruikte range kan ik niet automatisch bewaren.

iamcj 29-11-2002 11:00

Wat ik zei, heeft dan geen nut voor je.

Maar als ik het zo lees.

Waarom bepaal je die snijpunten niet gewoon wiskundig? dmv formules.

Dan kan je toch veel meer met die waarde doen, kan je direct en exact vergelijken met die andere waarde. Bereik aanpassen en je hebt je nieuwe snijpunten.

Ik 29-11-2002 11:48

Citaat:

iamcj schreef:
Wat ik zei, heeft dan geen nut voor je.

Maar als ik het zo lees.

Waarom bepaal je die snijpunten niet gewoon wiskundig? dmv formules.

Dan kan je toch veel meer met die waarde doen, kan je direct en exact vergelijken met die andere waarde. Bereik aanpassen en je hebt je nieuwe snijpunten.

Dat doe ik ook. Ik heb de trendlijn van de drie aparte delen van de grafiek. Deze vergelijk ik en ik heb de snijpunten.


Alle tijden zijn GMT +1. Het is nu 23:05.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.