Excel VBA Databron standaad grafiek per tabblad aanwijzen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 28-09 11:11
Mijn vraag
Ik heb een Excel workbook met per tabblad metingen van globale straling van de zon. Daar heb ik een standaard worksheet voor aangemaakt met het dataformat en de (aanvankelijk lege) grafiek. Elk tabblad heeft een korte datum, bijvoorbeeld 4-4. Nu heb ik een macro opgenomen die op elk tabblad na het toevoegen van de data voor die dag de grafiek automatisch invult.

Relevante software en hardware die ik gebruik
Excel 2010 (I know, wordt niet meer ondersteund, maar werkt voor mij goed genoeg.

Wat ik al gevonden of geprobeerd heb
Dit is de macro:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Sub Macro3()
'
Datum = InputBox(Prompt:="Welke datum wil je ophalen?", Title:="Datum")
'
    ActiveSheet.ChartObjects("Grafiek 1").Activate
    ActiveChart.SeriesCollection(1).Values = "='4-4'!$B$3:$B$182"
    ActiveChart.SeriesCollection(2).Values = "='4-4'!$C$3:$C$182"
    ActiveChart.SeriesCollection(3).Values = "='4-4'!$E$3:$E$182"
    ActiveChart.SeriesCollection(4).Values = "='4-4'!$F$3:$F$182"
    ActiveChart.SeriesCollection(5).Values = "='4-4'!$G$3:$G$182"

End Sub

Ik heb al geprobeerd 4-4 te vervangen door Datum, 'Datum' ,"Datum", enzo nog wat probeersels. Maar ik krijg steeds een foutmelding bij de uitvoering. Wat ik feitelijk probeer te doen is de 4-4 een variabele maken die ik per tabblad kan invullen. Nog mooier zou zijn dat de macro zelf het tabblad herkent. Op elk tabblad nu 5 keer 4-4 vervangen door 4-5 etc. is wat tijdrovend en volgens mij niet nodig.

Wie helpt mij op weg naar een werkend macro voor dit doel?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp

Beste antwoord (via Copitano op 10-06-2022 17:05)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Laat heel die sheetaanduiding eens gewoon weg. Dan pakt hij vanzelf het sheet waar de grafiek in staat.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Alle reacties


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 23:55

g0tanks

Moderator CSA
Copitano schreef op donderdag 9 juni 2022 @ 22:30:
Maar ik krijg steeds een foutmelding bij de uitvoering.
Wat is de foutmelding die je krijgt?

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Laat heel die sheetaanduiding eens gewoon weg. Dan pakt hij vanzelf het sheet waar de grafiek in staat.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • DirtyBird
  • Registratie: Juni 2005
  • Laatst online: 01-10 20:00

DirtyBird

Praktiserend denker

Ik begrijp niet zo goed waar je een macro voor nodig hebt.
Als je een dynamische range aanmaakt in een cel, op basis van het aantal gevulde kolommen/rijen en dan je grafiek maakt op basis van die range ben je er toch ook?

Panasonic Lumix G9ii ~ Leica DG 12-60mm f/2.8-4.0 ~Lumix 35-100mm f/2.8 II ~ Lumix 20mm f/1.7 ~ M.Zuiko 60mm f/2.8 Macro ~ Leica DG 50-200mm f/2.8-4.0 ~Leica DG 200mm f/2.8


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 28-09 11:11
Lustucru schreef op vrijdag 10 juni 2022 @ 10:00:
Laat heel die sheetaanduiding eens gewoon weg. Dan pakt hij vanzelf het sheet waar de grafiek in staat.
Dit was dus de truc:
code:
1
2
3
4
5
6
7
8
9
10
Sub Macro3()
'
    ActiveSheet.ChartObjects("Grafiek 1").Activate
    ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range("B$3:$B$200")
    ActiveChart.SeriesCollection(2).Values = ActiveSheet.Range("$C$3:$C$200")
    ActiveChart.SeriesCollection(3).Values = ActiveSheet.Range("$E$3:$E$200")
    ActiveChart.SeriesCollection(4).Values = ActiveSheet.Range("$F$3:$F$200")
    ActiveChart.SeriesCollection(5).Values = ActiveSheet.Range("$G$3:$G$200")

End Sub


Thanks. Je heb mij op het goede spoor gezet ;)

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 28-09 11:11
g0tanks schreef op vrijdag 10 juni 2022 @ 00:53:
[...]


Wat is de foutmelding die je krijgt?
Heb ik na het antwoord onder jou post eigenlijk niet meer naar gekeken. Maar wat ik al vermoede is het een syntax dingetje. Daar kun je wel vaker een avondje mee zoet zijn.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 28-09 11:11
DirtyBird schreef op vrijdag 10 juni 2022 @ 10:08:
Ik begrijp niet zo goed waar je een macro voor nodig hebt.
Als je een dynamische range aanmaakt in een cel, op basis van het aantal gevulde kolommen/rijen en dan je grafiek maakt op basis van die range ben je er toch ook?
Heb ik geen ervaring mee, maar dat ga ik nog wel eens uitzoeken. Leer nog elke dag weer nieuwe dingen. Dynamische range is er daar dan weer een van ;)
Thanks voor het meedenken.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp

Pagina: 1