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

afronden datalabel

Status
Niet open voor verdere reacties.
Het gaat om een andere afwijking dan < of > 3s. Het gaat erom dat als er 4 meetpunten achtereenvolgens > 1s of <-1s zijn, dan moet het vierde meetpunt rood worden. Als het vijfde punt ook weer afwijkt dan wordt ook dat punt rood enz.
 
zoiets dan ?
v1 telt bij een afwijking groter dan 1s +1 bij positieve waarden en -1 bij negatieve waarden en reset zich opnieuw bij waarden kleiner dan 1s.
Heb je 3 opeenvolgende punten kleiner of gelijk aan -1s of groter of gelijk aan +1s, dan wordt dat punt ook rood.
Code:
             [COLOR="#FF0000"] v1=0[/COLOR]
                    For ipts = 1 To .Points.Count     'alle punten aflopen en kleuren ngl. afwijking sd
                                   [COLOR="#FF0000"]v = Fix((Ywaarden(ipts - 1) - g) / sd)     'afronden afwijking tov gemiddelde naar een veelvoud van sd
                                   If Sgn(v) <> Sgn(v1) Then v1 = 0     'SGN = teken (neg=-1, 0=0, pos=+1) als sgn(afiwijking) anders is dan tellerstand dan teller terug op nul zetten
                                   If Abs(v) >= s Then v1 = v1 + Sgn(v)     'teller telt +1 bij positieve waarden op, -1 bij negatieve waarden ![/COLOR]

                                   Select Case [COLOR="#FF0000"]Abs(v)[/COLOR]
                                        Case 0 To 2:            'aan deze moet je niets veranderen, standaard cobalt groene punten en anders groene doorlopende lijnen
                                            [COLOR="#FF0000"] If Abs(v1) >= 3 Then     '3 of meer opeenvolgende punten met een afwijking van meer dan 1 s
                                                  .Points(ipts).MarkerForegroundColor = RGB(255, 0, 0)     'inhoud punt rood<----------------nieuw
                                                  .Points(ipts).MarkerBackgroundColor = RGB(255, 0, 0)     'rand punt rood<------------------nieuw
                                             End If[/COLOR]
                                        Case Else
                                             .Points(ipts).MarkerForegroundColor = RGB(255, 0, 0)     'inhoud punt rood<----------------nieuw
                                             .Points(ipts).MarkerBackgroundColor = RGB(255, 0, 0)     'rand punt rood<------------------nieuw
                                   End Select
                              Next

                       case 2 to 8
 
Laatst bewerkt:
Ingewikkeld. Het is bijna goed, nu worden de laatste 2 meetpunten rood gekleurd ipv alleen de laatste.
 
Code:
    'On Error GoTo 0
                              v1 = 0
                              For ipts = 1 To .Points.Count     'alle punten aflopen en kleuren ngl. afwijking sd
                                   v = Fix((Ywaarden(ipts - 1) - g) / sd)     'afronden afwijking tov gemiddelde naar een veelvoud van sd
                                   If Sgn(v) <> Sgn(v1) Then v1 = 0     'SGN = teken (neg=-1, 0=0, pos=+1) als sgn(afiwijking) anders is dan tellerstand dan teller terug op nul zetten
                                   If Abs(v) >= s Then v1 = v1 + Sgn(v)     'teller telt +1 bij positieve waarden op, -1 bij negatieve waarden !

                                   Select Case Abs(v)
                                        Case 0 To 2:            'aan deze moet je niets veranderen, standaard cobalt groene punten en anders groene doorlopende lijnen
                                             If Abs(v1) >= 3 Then     '3 of meer opeenvolgende punten met een afwijking van meer dan 1 s
                                                  b = True      'vlaggetje opzetten
                                                  If pts < .Points.Count Then     'alleen niet bij het laatste punt van de reeks
                                                       v = Fix((Ywaarden(ipts) - g) / sd)     'VOLGENDE PUNT : afronden afwijking tov gemiddelde naar een veelvoud van sd
                                                       b = (Sgn(v) <> Sgn(v1))     'vlaggetje naar beneden halen als afwijking volgende gelijk is aan huidige
                                                  End If
                                                  If b Then     'vlaggetje nog steeds omhoog
                                                       .Points(ipts).MarkerForegroundColor = RGB(255, 0, 0)     'inhoud punt rood<----------------nieuw
                                                       .Points(ipts).MarkerBackgroundColor = RGB(255, 0, 0)     'rand punt rood<------------------nieuw
                                                  End If
                                             End If
                                        Case Else
                                             .Points(ipts).MarkerForegroundColor = RGB(255, 0, 0)     'inhoud punt rood<----------------nieuw
                                             .Points(ipts).MarkerBackgroundColor = RGB(255, 0, 0)     'rand punt rood<------------------nieuw
                                   End Select
                              Next
                         End With

                    Case 2 To 8                                 'je 7 horizontale lijnen

EDIT : de commentaar wat aangepast !, was niet helemaal correct
 
Laatst bewerkt:
Als ik het zou snappen dan zou ik het zelf natuurlijk aanpassen. Het gaat nu goed alleen niet als er een vijfde punt of een zesde punt bij komt, idg moeten het 4e, 5e en 6e punt rood gekleurd worden.
 
we praten blijkbaar naast elkaar.
- de laatste versie (#64) kleurde het laatste punt van een serie van minstens 3 die een afwijking had van minstens +- 1s.
- de voorlaatste versie (#62) kleurde vanaf het 3e punt van zo'n serie punten.

Dus als je nu vanaf het 4e punt, ook het 5e, 6e, etc wilt gekleurd hebben dan is het versie #62 met
Code:
 If Abs(v1) [COLOR="#FF0000"][SIZE=3]>= 4[/SIZE][/COLOR] Then     '3 of meer opeenvolgende punten met een afwijking van meer dan 1 s

en als het nog een andere versie mocht zijn, dan moet je dat uitleggen.
 
Laatst bewerkt:
Hoi cow18, ik had gereageerd maar is blijkbaar niet doorgekomen. Je hebt natuurlijk gelijk, ik was te veel gefocusd op dat derde punt maar met de aanpassing is het precies wat ik bedoel.

Ik zit nu met een volgend probleem waar ik niet uit kom en dat is dat een meetpunt (meestal een afwijkend meetpunt) gedisabled moet kunnen worden en vice versa en dan het liefst door met de rechtermuisknop op dat desbetreffende meetpunt een menu te openen waarin je disable aan kan vinken. Op dat moment wordt dat punt niet meegenomen in de berekening van het gemiddelde en standaardafwijking. Een gedisabled punt wordt dan zwart in de grafiek. Ik weet niet precies hoe ik dit aan moet pakken; het maken van een menu lukt me nog wel maar voor de data moet ik dan een schaduwblad aanmaken of zo of kan het allemaal in een array.

Een ander punt waar ik nog mee bezig ben is dat de lijn naar en vanaf een afwijkend (rood)meetpunt ook rood moet zijn.
 

Bijlagen

  • afronden numberformat v2.2.xlsm
    329,4 KB · Weergaven: 19
oei, en dat op een vrijdagavond.
 
Laat zitten, wacht tot maandag haha. Zonder gekheid, ik je ben je heel dankbaar. Het probleem is dat ik die formules je bedenkt niet begrijp en ook niet hoe je ze bedenkt, ik dacht dat van die lijntjes wel op te lossen...
Fijn weekend.
 
het wordt zoiets, met de natte vinger, maar ik moet het nog wat uitproberen.
klik met de rechtermuis op een "te disablen" punt of omgekeerd.

Het komt er hier eigenlijk op neer, dat bij je gegevens er 10 extra kolommen bijgekomen zijn, de eerste 5 dienen, als daar een "1" staat om een punt te "disable-en" of niet en de volgende 5 om de nieuwe gemiddelden en standaardafwijkingen te berekenen. In kolom N van Grafieken vindt je die waarden terug.

Je kan niet volgen met wat er daar allemaal gebeurd, wel eigenlijk worden de lijnen (vooral serie 1) volledig in VBA gestuurd, anders hadden er daar noeen keer 3 extra series moeten van gemaakt worden.
Ik kijk volgende week nog een keer om 1 en ander te verduidelijken met commentaar of eenvoudiger te maken.
Eigenlijk was ik met iets begonnen en toen moest er geleidelijk dat nog bij en dat nog bij, etc. Een typisch belgische oplossing met een huisje en daaraan dan allerlei "koterijen".
 

Bijlagen

  • afronden numberformat v2.2 (1).xlsm
    334,7 KB · Weergaven: 25
Laatst bewerkt:
omgekeerd bericht, ik dacht ik schrijf het iets gestructureerder en beter becommentarieerd, zodat je beter kan meevolgen.
Resultaat, het werkt niet meer.
Ik bekijk het later nog een keer.
 
Kan het zijn dat de formule voor de eis 4x onder of boven 1s niet volledig is? Bij een positieve afwijking wordt het derde en/of vierde punt rood i.p.v. groen of alleen het vierde punt. En bij een negatieve afwijking worden de lijnen voor en na het rode punt niet rood maar blijven groen. In de bijlage een voorbeeld in meetpunt 1 en meetpunt 3.
 

Bijlagen

  • afronden numberformat v2.2 (1).xlsm
    333,2 KB · Weergaven: 20
ik heb de koterijen wat verfatsoenelijkt. Alles staat nu gewoon in die ene macro.
Vooral serie 1 is een beetje hokuspokus met al die opties om van kleur of lijnstijl te veranderen.
Daar stonden nu 4 soorten uitzonderingen in, 1 ervan is, vermoed ik, uit een oudere, in ongebruik geraakte versie en strooit roet in het eten.
Die wordt nu door die "and 0" uitgeschakeld. Als alles netjes loopt mag je straks alles tussen 3e uitzondering en laatste uitzondering weggooien

Code:
     '3e uitzondering : maar ik denk dat dit een oud restant is, die eigenlijk net hetzelfde doet als de 1e uitzondering = OUD EN UITGESCHAKELD
                                        For ipts = 1 To .Points.Count     '2e eis afwijkende meetpunten

                                             If ipts > 3 [COLOR="#FF0000"][SIZE=3]And 0[/SIZE][/COLOR] Then     'door die 0 wordt deze optie niet uitgevoerd
 

Bijlagen

  • afronden numberformat v2.2 (1) (2).xlsm
    333,4 KB · Weergaven: 22
Op dit moment zijn er 2 vastgestelde eisen: >3 en/of <-3s en 4 meetpunten >1s en/of 4 meetpunten <-1s. Beide eisen kunnen per meetserie meerdere keren voorkomen.

Super bedankt, ik ga de koterijen bekijken.
 
klopt, die 3e eis is nu niet meer actief.
De 4e eis komt na het rechtsklikken op een punt. Dan wordt het punt + de voor- en achterliggende lijn zwart.
Dan zouden de processtatistieken zich ook moeten aanpassen, zie 1e grafiek, kolommen J en N
 
Laatst bewerkt:
Had je mijn post #74 nog gezien. Ik ben nog aan het testen maar de lijntjes om een rood punt worden niet rood met 4x >1s en/of 4x <-1s
 
nog een foutje, die i moest iFSC worden
Code:
                                        .ApplyDataLabels        'labels activieren
                                        For ipts = 1 To .Points.Count     'alle punten aflopen
                                             .Points(ipts).DataLabel.Formula = IIf(ipts = .Points.Count, "gem" & IIf([COLOR="#FF0000"]iFSC[/COLOR] = 5, "", IIf([COLOR="#FF0000"]iFSC[/COLOR] >= 5, "+", "") & -5 +[COLOR="#FF0000"] iFSC[/COLOR] & "s ") & "= " & AfrondenSD(y0, sd), "")     'alleen voor laatste punt label corrigeren, de rest is leeg
                                        Next
                                   End With
                              Case 9                            'een 9e serie aanmaken om de waarden op de 1e Y-as als labels weer te geven
 
Code:
 Select Case Abs(v)
                                                  Case 0 To 2:  'aan deze moet je niets veranderen, standaard cobalt groene punten en anders groene doorlopende lijnen
                                                       If Abs(v1) >= 4 Then     '4 of meer opeenvolgende punten met een afwijking van meer dan 1 s
                                                            [COLOR="#FF0000"]With .Points(ipts)
                                                                 .MarkerForegroundColor = RGB(255, 0, 0)     'inhoud punt rood<----------------nieuw
                                                                 .MarkerBackgroundColor = RGB(255, 0, 0)     'rand punt rood<------------------nieuw
                                                                 .Border.Color = RGB(255, 0, 0)     'voorliggende lijntje rood
                                                            End With
                                                            If ipts < .Points.Count Then .Points(ipts + 1).Border.Color = RGB(255, 0, 0)     'achterliggende lijntje rood (mag alleen niet van het laatste punt zijn !)[/COLOR]
                                                       End If
                                                  Case Else
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan