Symphysodon
Gebruiker
- Lid geworden
- 14 dec 2012
- Berichten
- 468
Beste forummers,
Ik heb een tabel met een x-tal kolommen met per kolom 8 te toetsen cellen. Nu wil ik voordat de kolommen getoetst worden, de getallen gecontroleerd hebben op uitbijters en tekst. De uitbijters worden rood gemarkeerd, tekst wordt verwijderd.
Nu heb ik een poging gedaan om het in een event te krijgen, maar de code loopt niet lekker. Als ik begin met het invullen van de tabel worden er meerdere getallen per kolom rood. De bedoeling is dat 1x een uitbijtertest gedaan wordt, dus per kolom maximaal 1 rood getal.
Op het moment als ik getallen verwijder krijg ik een pop-up met de melding: De uitvoering van de programmacode is onderbroken... Doorgaan, …
De code is als volgt:
Dit is vooralsnog voor 1 kolom.
Hoe krijg ik dit voor elkaar. Alvast bedankt voor de antwoorden.
grt
Marco
Ik heb een tabel met een x-tal kolommen met per kolom 8 te toetsen cellen. Nu wil ik voordat de kolommen getoetst worden, de getallen gecontroleerd hebben op uitbijters en tekst. De uitbijters worden rood gemarkeerd, tekst wordt verwijderd.
Nu heb ik een poging gedaan om het in een event te krijgen, maar de code loopt niet lekker. Als ik begin met het invullen van de tabel worden er meerdere getallen per kolom rood. De bedoeling is dat 1x een uitbijtertest gedaan wordt, dus per kolom maximaal 1 rood getal.
Op het moment als ik getallen verwijder krijg ik een pop-up met de melding: De uitvoering van de programmacode is onderbroken... Doorgaan, …
De code is als volgt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim n, m, A, B, t, xgem, sd, KW, tc, cl As Variant
Set rng = [a1:a8]
If IsEmpty(rng.Value) Then Exit Sub
If Not Intersect(Target, rng) Is Nothing Then
On Error Resume Next
If Target <> "" Then
If Not IsNumeric(Target) Then
''MsgBox "Geen tekst a.u.b.!!"
Target.Value = ""
Exit Sub
Else
Application.ScreenUpdating = False
Target.Font.Color = vbBlack
n = Application.WorksheetFunction.CountA(rng)
m = n - 2
A = 0.05
B = A / (2 * n)
If n = 1 Then Exit Sub
t = Application.WorksheetFunction.TInv(2 * B, m)
xgem = Application.WorksheetFunction.Average(rng)
sd = Application.WorksheetFunction.StDev(rng)
KW = ((n - 1) / n ^ 0.5) * (t ^ 2 / ((n - 2) + t ^ 2)) ^ 0.5
For Each cl In rng
tc = Abs((cl - xgem) / sd)
If tc > KW Then
cl.Font.Color = -16776961
End If
Next
Application.ScreenUpdating = True
End If
End If
End If
End Sub
Dit is vooralsnog voor 1 kolom.
Hoe krijg ik dit voor elkaar. Alvast bedankt voor de antwoorden.
grt
Marco