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

dynamisch bereik grafiek lukt niet

Status
Niet open voor verdere reacties.

westra77

Gebruiker
Lid geworden
2 mrt 2007
Berichten
149
ik heb via het forum al veel kennis opgedaan en ben al ver op weg.
ik blijf echter vastlopen op kleiene aspecten.
via het forum Topis (dynamische bereiken) heb ik een gafiek overgenomen die exact aan de verwachting voldoet.
de formules heb ik gecopieerd. echter in mijn bestand werken deze niet.
wat doe ik fout??
 

Bijlagen

excuus

na twee avonden zoeken, nog een nadere mogelijk geprobeerd en toch nog zelf opgelost
 
wederom een probleem

in cellen I1; J2;j3 enz worden de gemiddelden van de maand weergegeven.
als er nog geen waarde is ingevoerd is het resultaat van de formule ""
hier ligt ook het probleem.
de cellen p1 en p2 hebben in het voorbeeld de uitkomst ""
hierdoor is de schaling is de grafiek verkeerd. (alles is jan)
zodra bij de invoer een datum in augustus wordt ingevoerd is het gewenste resultaat er .
wie kan mij helpen om een oplossing te bedenken voor dit probleem
de reeks is nu vrij kort maar wordt in de toekomst uigebreid naar een range van 2 jaar.

daarnaast zou ik ook graag hebben dat zodra er op een dag meerdere keren op opslaan wordt gedrukt de laatste invoer van deze wordt bewaart. en de vorige worden overschreven

ik hoop dat ik niet te veel van jullie vraag.
 
Binnen de verschuivings formule kan je ipv AANTALARG beter AANTAL.ALS gebruiken.

De formule wordt dan b.v.:
Code:
=VERSCHUIVING(Blad1!$H$2;;AANTAL.ALS(Blad1!$I$1:$IV$1;">0");;-13)
 
ik heb het volledige bestand bijgevoegd, zoals deze er uit komt te zien
de eerste rijen zijn leeg,omdat deze informatie bevat die ik liever niet op internet plaats

ik heb jou formule gekopieerd en aan de juiste cellen gekoppeld
echter ik blijf een fout melding krijgen
 

Bijlagen

Oeps, de aantal.als stond bij het aantal kolommen dat je naar links of rechts wilt verplaatsen, hij moet staan bij breedte, wat het laatste argument is van de verschuiving formule. Voor de waardes krijg je dan deze formule:
Code:
=VERSCHUIVING(Blad1!$I$111;0;0;1;AANTAL.ALS(Blad1!$I$111:$V$111;">0"))
De formule voor maanden moet zijn:
Code:
=VERSCHUIVING(waarden;1;)
Met de -1 die er stond ga je 1 rij omhoog. Met deze 1 zak je 1 rij.

ik hoop dat het zo wel lukt. Anders post ik jouw bestandje wel terug.
 
bedankt bandito bob

dit werkt perfect.

zou je me ook kunnen helpen met mijn volgende vraag:
door op opslaan te drukken worden de gegevens weggeschreven.
ik wil echter niet dat er van eenzelfde dag twee gegevens worden genoteerd.
het gegeven van de laatste keer dat er op die dag wordt opgeslagen zou gebruikt moeten worden voor het berekenen van het gemiddelde.
ik hoop dat ik duidelijk ben.

in ieder geval alvast bedankt voor je hulp tot dusver
 
grafiek is bijna perfect, nog twee problemen
eerste probleem
indien ik minder als dertien maanden heb wordt de schaal van de grafiek niet automatisch aangepast. de grafiek zou dan moeten snijden op de eerste maand.
indien er bv maar van 3 maanden gegevens bekend zijn dan moet hij de grafiek schalen
op 3 maanden.

tweede probleem
de laaste waarde in de grafiek daalt naar 0
 

Bijlagen

De gebruikte verschuivings formule is weer jouw oude, nl:
Code:
=VERSCHUIVING(Blad1!$I$111;;AANTAL.ALS(Blad1!$I$111:$IV$111;">0");;-13)
Zoals eerder vermeld gebruik je de aantal.als hierin bij het argument voor kolom verplaatsing, en niet voor de breedte. De breedte staat op -13.

Gebruik mijn opgegeven formule van een paar posten hierboven. Deze dus:
Code:
=VERSCHUIVING(Blad1!$I$111;0;0;1;AANTAL.ALS(Blad1!$I$111:$V$111;">0"))
 
excuus
oke ik geloof dat ik iets te lang achter de computer zit

bedankt bandito bob
opgelost
 
bedankt bandito bob

dit werkt perfect.

zou je me ook kunnen helpen met mijn volgende vraag:
door op opslaan te drukken worden de gegevens weggeschreven.
ik wil echter niet dat er van eenzelfde dag twee gegevens worden genoteerd.
het gegeven van de laatste keer dat er op die dag wordt opgeslagen zou gebruikt moeten worden voor het berekenen van het gemiddelde.
ik hoop dat ik duidelijk ben.

in ieder geval alvast bedankt voor je hulp tot dusver
Ik ben nog een beginner in VBA, maar ik kan je alvast op weg helpen.
Onderstaande code kijkt naar de laatste datum. Als deze datum niet gelijk is aan de invoer datum dan schrijft hij de datum er (rechts naast) bij, evenals de waarde.
Als de laatste datum wel gelijk is aan de invoer datum, dan veranderd hij alleen de waarde en geeft hij hier een melding van.
Let op!! Hij kijkt dus alleen naar de laatste datum, en NIET naar alle datums.
Als de invoer altijd op chronologische volgorde is kan dit misschien wel voldoende zijn.

Code:
Sub dddd()

    Dim LaatsteKolom As Integer
    
    LaatsteKolom = Range("IV106").End(xlToLeft).Column
    If Cells(106, LaatsteKolom).Value <> Range("B103").Value Then
    Cells(106, LaatsteKolom + 1).Value = Range("B103").Value
    Cells(107, LaatsteKolom + 1).Value = Range("B104").Value
    Else: Cells(107, LaatsteKolom).Value = Range("B104").Value
    MsgBox ("datum kwam al voor, waarde van die datum is aangepast.")
    End If
    Range("I111:IV112").Select
    Selection.Sort Key1:=Range("I112"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=4, MatchCase:=False, Orientation:=xlLeftToRight, _
        DataOption1:=xlSortNormal
        
End Sub
 
hallo bandito
de reden waarom ik het dynamisch bereik had is aangepast is het volgende
ik wil in de grafiek steeds de laatste dertien periodes laten zien
in jou code wordt elke keer een maand toegevoegd.
is dit op te lossen??

de macro werkt fantastisch
de waarden worden op chronologische volgorde ingevoegd aangezien wordt gewerkt met =vandaag()
dubbele waarden op de zelfde dag worden hierdoor vermeden

door jou hulp veel geleerd
 
Laatst bewerkt:
precies wat ik bedoel

heel erg bedankt voor de enrgie die je er in gestoken hebt.
trouwens geweldig hoe iedereen dingen voor elkaar oplost binnen het forum
 
alles loopt perfect op 1 detail na:
indien er nog geen waardes bekend zijn krijg ik een foutmelding
(d106 en d107 zijn nog leeg)
de totale reeks kent nog geen waarden.
we sturen naar een leeg werkblad naar onze klanten. dit lukt echter niet vanwege de melding
dit komt waarschijnlijk doordat de waardes groter als 0 moeten zijn
nadat de waarden voor de eerste keer zijn weggeschreven werkt alles perfect.
is dit op te lossen??
 
Hier is hij weer terug.

De melding kwam doordat de breedte in de verschuiving formule dan op 0 kwam (geen selectie), wat een error geeft. Je kan wel verder, maar netjes was het niet.
Dit heb ik ondervangen door een extra ALS functie in te zetten. Als de aantal.als 0 is dan maakt hij er 1 van, anders wordt de breedte de max van de -aantal.als en -13.

Misschien is het wel handig om de aantal.als formule appart te definieren of in een hulpcel te zetten, deze komt nu namelijk al 3x voor in de verschuiving formule. dan kan je in de verschuiving formule verwijzen naar die naam/cel.


p.s. niet alleen jij leert er van hoor, ik leer ook weekelijks meer over excel.
p.s.2 Als je dit bestand gaat opsturen ga je het toch wel redelijk beveiligen he, anders zullen de formules er wel eens snel anders uit kunnen gaan zien.
 

Bijlagen

Laatst bewerkt:
hallo bandito bob

ook de laatste aanpassing werkt perfect
nogmaal dank
de grafiek is een resultante van vele berekeningen

beveiligen is dus zeker nodig
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan