Constante controle op foute invoer

Status
Niet open voor verdere reacties.

basblok

Gebruiker
Lid geworden
11 nov 2011
Berichten
342
Geacht Forum,

Is er een mogelijkheid een constante controle te maken op het blad "Uitslagen" tegen foutieve invoer in de cellen onder Car. ?

Als die invoer in kolom F groter is dan die in kolom E zou er een foutmelding moeten komen.
Zo ook van toepassing op de cellen in kolom P, die niet groter mogen zijn dan die in kolom O.

Met vriendelijke groet,
Bas Blok
 

Bijlagen

kan door data-validatie, maar dan moet het op beide kolommen E en F gebeuren, maar dan kan je nog het kleinste getal gaan wissen.
Dus enkel voor dat laatste gevalletje zou de VBA-oplossing solaas bieden, een beetje overkill ?
 
Dit is volgens mij geen overkill;
De gegevens in kolom "F" en kolom "P" mogen niet hoger zijn dan die in de kolom links ervan, anders worden de gegevens op het blad "Stand" verkeerd weergegeven. Dat mag absoluut niet.
Is die macro wel of niet te maken?
Ik krijg niet de mogelijkheid te zien om gegevensvalidatie to te passen. Hoe kan ik dat dan instellen?
 
Ik probeer het met deze code, maar dat werkt natuurlijk niet want het moet op iedere betreffende wedstrijd worden toegepast.

Sub uitslag_controleren()
'Controles

If Cells(6, 6) = "> Cells(6,5)" Or Cells(16, 6) = "> Cells(15, 6)" Then
MsgBox "Aantal caramboles is verkeerd ingevuld !", vbCritical, "Fout"
Exit Sub
End If

End Sub
 

Bijlagen

in de bladmodule van "uitslagen"
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
     Set c = Intersect(Target, [COLOR="#FF0000"]Range("F1:F134,P1:P134")[/COLOR])        'alleen tot rij 134 --> welke cellen in dit bereik worden er gewijzigd ?
     If c Is Nothing Then Exit Sub                              'geen van die cellen, dan is het oké

     For Each c0 In c.Cells                                     'iedere gewijzigde cel in dat bereik aflopen
          With c0
               If Len(.Value) > 0 And .Value < .Offset(, -1).Value Then     'cel is niet leeg maar kleiner dan de cel links er van
                    MsgBox "de waarde in " & .Address & " is te laag, moet minstens " & .Offset(, -1).Value & " zijn", vbCritical
                    .ClearContents                              'wat wil je dat er gebeurt ? cel leegmaken ?
               End If
          End With
     Next
End Sub
je moet anders nog aanpassen, wat je wil dat er gebeurt, als er iets fout ingetikt wordt.
Je kan ook dat rode bereik zo aanpassen dat er enkel naar de goeie cellen gekeken wordt, niet lompweg alle cellen tussen rij 1 en 134, maar enkel naar Range("F6:F8,F15:F17, ....")
Je kan je bepaalde cellen blokkeren en je tabblad beveiligen (zonder paswoord) zodat niemand aan je formules kan knoeien ... .
 

Bijlagen

Laatst bewerkt:
Het is inderdaad de bedoeling dat enkel naar
Range("F6:F8,F15:F17, ....") en Range("P6:P8),etc wordt gekeken.
 
Je vraagt mij wat er moet gebeuren,

'wat wil je dat er gebeurt ? cel leegmaken ?

Op dit moment staat er als voorbeeld iets ingevuld, maar op het moment dat een finale begint zijn al die cellen leeg. Het gaat er dus om dat wanneer bij de invoer in de cellen Range("F6:F8,F15:F17, ....") het getal groter is dan de kolom links, er een foutmelding komt met de tekst: Het ingevoerde is onjuist.

Ben ik duidelijk genoeg? Kan je dat voor mij in orde maken?
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan