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

statisch bereik van grafiek?

Status
Niet open voor verdere reacties.

Rycoon36

Gebruiker
Lid geworden
1 dec 2013
Berichten
10
Beste forumleden,

Op internet en de rest van het forum kan ik het helaas niet vinden dus vandaar mijn topic.
Ik heb een excelbestand gemaakt waar telkens via een knop met een macro een regel ingevoegd word op regel 16. Dit werkt allemaal prima maar regel 16 t/m 37 worden weergegeven in een grafiek. Werkt ook prima.

Nu is het volgende het probleem: Als ik op de knop te druk (de macro voegt een nieuwe regel in en plaatst de datum van vandaag in die regel) dan schuift het dynamische bereik van de grafieken mee. De bedoeling is dat de grafiek bv: B16:B37 weergeeft, dus ook als er een regel ingevoegd word.

Is er een oplossing om dit statisch te maken?

Alvast bedankt!

Groeten Rycoon
 
Hallo,

Hoe heb jij dat bereik dynamisch gemaakt ?

Probeer het eens met een benoemd bereik :

Code:
=VERSCHUIVING(Blad1!$B$1;15;0;22;1)

Als ik nu een regel toevoeg dan blijft het bereik nog steeds van B16 tot en met B37 lopen.
 
Probeer het eens op de volgende manier. Maak een nieuwe bereiknaam aan en geef deze bijvoorbeeld de naam Grafiekbereik. Zet in het vak 'verwijst naar' de volgende formule:
Code:
=VERSCHUIVING(Blad1!$B$15;1;0;22;1)
en gebruik dit benoemde bereik voor je grafiek.
 
Als je toch al met code bezig bent, gewoon de range van de grafiek aanpassen:
ActiveSheet.ChartObjects("JouGrafiekNaam").Activate
ActiveChart.SetSourceData Source:=Range("B16:B37")
 
Lijkt me een mooi idee, alleen staat de grafiek op een ander blad. De huidige code is deze:

Code:
Sub RunAllMacros()
Procedure1
Procedure2
End Sub

Code:
Sub Procedure1()
Rows(16).EntireRow.insert
End Sub
Code:
Sub Procedure2()
Range("B16").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
End Sub

Ik kan Procedure3 toevoegen maar hoe verwijs ik naar een ander blad? Het andere blad heet "Grafieken".
Dank voor jullie hulp! Geweldig!

Groeten Rycoon
 
Laatst bewerkt door een moderator:
om een ander blad te selecteren gebruik je Sheets("Sheetnaam")
Tevens zal je in de grafiek de range van het andere blad moeten gebruiken
Sheets("JouSheetNaam").Select
en voor je range JouSheetNaam!Range()

je hoeft niet elke regel code in een apparte procedure te zetten, je kan er ook gewoon 1 van maken
 
Beste Namliam,

Ik begrijp je uitleg nog niet helemaal. Ligt aan mij hoor, ik heb namelijk erg weinig verstand van Virtual Basic. Wat ik nu geprobeerd heb, heeft deze (niet werkende) code opgeleverd.

Code:
Sub RunAllMacros()
Procedure1
Procedure2
End Sub

Code:
Sub Procedure1()
Rows(16).EntireRow.insert
End Sub

Code:
Sub Procedure2()
Sheets("Grafieken").Select
ActiveSheet.ChartObjects("Grafiek 18").Activate
ActiveChart.SetSourceData Source:=Range("='Input Data'!$B$16:$B$37;'Input Data'!$D$16:$D$37")

End Sub

Wat doe ik nu fout?
Alvast bedankt!

Groeten Rycoon
 
Laatst bewerkt door een moderator:
De juiste syntax moet zijn
Code:
    ActiveChart.SetSourceData Source:=Sheets("Blad2").Range("D3:D10")

Ofwel

Code:
ActiveChart.SetSourceData Source:=sheets("Input Data").Range($B$16:$B$37;$D$16:$D$37")
Ik hoop dat dit helpt
 
Mijn excuses Hujib, ik had dat eerst even moeten lezen.
Hierbij voeg ik een voorbeeld bestand bij. En de wijzigingen van jou heb ik gezien en zal er in het vervolg op letten. Nogmaals excuses!

Het bestand waar we over praten:Bekijk bijlage voorbeeld.zip
 
Laatst bewerkt door een moderator:
Beste Namliam,

Hij geeft nu aan dat er een fout in zit omdat er na Range met een $ begonnen word.
Ik heb inmiddels het bestand geüpload als dat makkelijker is.
Dank voor je moeite!
 
Laatst bewerkt door een moderator:
Ja iets te veel verwijderd, maar dat valt toch wel erg op?
Code:
ActiveChart.SetSourceData Source:=sheets("Input Data").Range([COLOR="#FF0000"][/COLOR][U]"[/U]$B$16:$B$37;$D$16:$D$37")
 
Nog steeds krijg ik hem niet werkend... :-(
Op deze manier krijg ik de melding: Er is onvoldoende geheugen beschikbaar.
Dat kan niet de reden zijn lijkt mij, ik gebruik Microsoft Excel 2011 op Macbook Pro
 
Code:
ActiveChart.SetSourceData Source:=Sheets("Input Data").Range("B14:C14,B17:C40,E14,E17:E40")
Dat werkt prima voor mij, verschil is dat ik de US versie heb dus de komma als scheiding heb in plaats van de punt komma in de NL versie
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan