cow18
Terugkerende gebruiker
- Lid geworden
- 24 mei 2008
- Berichten
- 4.276
- Besturingssysteem
- Windows
- Office versie
- Excel365
Code:
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) >= 4 Then '4 of meer opeenvolgende punten met een afwijking van meer dan 1 s
With .Points(ipts)
.MarkerForegroundColor = RGB(255, 0, 0) 'inhoud punt rood
.MarkerBackgroundColor = RGB(255, 0, 0) 'rand punt rood
.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="#FF0000"]Else 'in alle andere gevallen dat het punt nog niet rood gekleurd is
If data_admin(i, iCol_Levels) = 1 Then 'je toont de USL en de LSL
If WorksheetFunction.Median(mylsl, Ywaarden(ipts - 1), myusl) <> Ywaarden(ipts - 1) Then 'je Y-waarde ligt niet tussen lsl en USL
With .Points(ipts)
.MarkerForegroundColor = RGB(255, 0, 0) 'inhoud punt rood
.MarkerBackgroundColor = RGB(255, 0, 0) 'rand punt rood
.Border.Color = RGB(255, 0, 0)
End With
If ipts < .Points.Count Then .Points(ipts + 1).Border.Color = RGB(255, 0, 0) 'maakt lijntje naar punt ook rood!
End If
End If[/COLOR]
End If
Case Else
With .Points(ipts)
.MarkerForegroundColor = RGB(255, 0, 0) 'inhoud punt rood
.MarkerBackgroundColor = RGB(255, 0, 0) 'rand punt rood
.Border.Color = RGB(255, 0, 0)
End With
If ipts < .Points.Count Then .Points(ipts + 1).Border.Color = RGB(255, 0, 0)
End Select
Next
in die select case abs(v) is alles al rood buiten de -2 en de +2 (die case else na het rode stuk !)
dus naar die moet je niet meer om kijken.
in het gebied tussen -2s en +2s wordt ook al vanaf het 4e punt buiten -1s en +1s rood gekleurd, dus die moet je ook niet hebben. (eerste stuk van Case 0 to 2, voor het rode stuk)
Dus de andere gevallen moet je wel nog tackelen, dus het rode deel begint met een else en dan aflopen waarom je een bepaald punt nog voor een andere reden wenst rood te kleuren.
dan loop je de opeenvolgende if-jes binnen die rode code af :
* je toont de LSL en de USL
* je Y-waarde ligt buiten het gebied LSL-> USL (kleiner dan LSL of groter dan USL)
wel dan worden die ook rood gekleurd
Laatst bewerkt: