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

VBA Chart - Data Input

Status
Niet open voor verdere reacties.

cloosen

Gebruiker
Lid geworden
27 dec 2005
Berichten
99
Hi,

Ik denk dat dit al heel vaak aan bod is gekomen, maar ik kom er na een tijdje klussen toch niet helemaal uit.

Ik heb nu de volgende code om een range te bepalen:

Code:
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select

    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("DAY1").Range("A1:D8545"), PlotBy
        :=xlColumns
    ActiveChart.SeriesCollection(1).XValues = "=DAY1!R2C2:R8545C2"
    ActiveChart.SeriesCollection(2).XValues = "=DAY1!R2C2:R8545C2"

Jullie zullen het vast al begrijpen: de range A1:D8545 is natuurlijk niet altijd hetzelfde, heeft iemand van jullie de code bij de hand om dit variabel te maken?

Heel veel dank alvast! :thumb:
 
Als A1 altijd hetzelfde is zou je het op de volgende manier kunnen doen


Code:
LastRow = Application.CountIf(Worksheets("DAY1").Range("D:D"), ">""")

ActiveChart.SetSourceData Source:=Sheets("DAY1").Range("A1:D" & LastRow), PlotBy
        :=xlColumns

let wel op als je getallen in kolom D hebt staan dan moet je namelijk het volgende aanpassen

Code:
Range("D:D"), ">""")

wordt dan
Code:
Range("D:D"), ">0")
 
Dat is al super!! Nu maakt Excel me een grafiek met op de X-as een combinatie van kolom A en B. Echter, ik wil alleen kolom B als X-as gebruiken... Waar kan ik dat doen?
 
Ik was weer te snel, dat heb ik nu opgelost door dit ervan te maken:

Code:
    Sheets("DAY3").Select
    Range("A1").Select
    
    Charts.Add
    ActiveChart.ChartType = xlLine
    LastRow = Application.CountIf(Worksheets("DAY3").Range("D:D"), ">0")
    ActiveChart.SetSourceData Source:=Sheets("DAY3").Range("A1:D" & LastRow), PlotBy:=xlColumns
    ActiveChart.SeriesCollection(1).XValues = Sheets("DAY3").Range("B2:B" & LastRow)
    ActiveChart.SeriesCollection(2).XValues = Sheets("DAY3").Range("B2:B" & LastRow)

Waar ik nu nog mee zit... Het komt ook wel eens voor dat ik geen data heb (DAY3 is bijvoorbeeld alleen gevuld met een header, kolom D is echter wel gevuld met een aantal nullen). Kan ik daar een foutafhandeling voor maken?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan