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

Enkel decimalen .00 .25 .50 of .75 laten invullen

Status
Niet open voor verdere reacties.

ikselle

Gebruiker
Lid geworden
25 mei 2009
Berichten
198
Ik wil graag gebruik makend van workbook_sheetchange een regel instellen voor de range("A2:B8"):
als het ingevoerde gegeven numeriek is en een decimaal bevat mag die enkel toegelaten worden wanneer die eindigt op .00 .25 .50 of .75
Bedankt voor het meedenken.
 
Voor numeriek wordt de punt gebruikt om duizendtallen te scheiden.
Moet dat niet ,00 ,25 ,50 en ,75 zijn?
 
Voor gegevensvalidatie zou ik eerder kiezen voor de formule: =REST(A1;0,25)=0
Hierbij kunnen ook gewoon gehele getallen worden ingevuld en als decimalen worden gebruikt dan kan dat alleen maar een veelvoud van 0,25 zijn.
 
@edmoor Ja normaliter wel maar blijkbaar zijn de cellen bij mij anders geformateerd
@Excelbat Bedankt voor je meedenken maar ik ben eigenlijk op zoek naar een formulering om in vba te gebruiken
@rebmog Jouw advies kan ik omzetten in vba
Allemaal erg bedankt !
 
Vreemd inderdaad... De excel-functie werkt gewoon met een deler kleiner dan 1, maar mod in VBA niet. (melding: delen door 0)

Gebruik anders:

Code:
If Target.Value * 4 <> Int(Target.Value * 4) Then
 
de VBA-Mod-functie werkt niet met fracties als deler

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   If Not (Intersect(Target, Range("B2:C8")) Is Nothing) Then
      If IsNumeric(Target.Value) Then
         If [COLOR="#FF0000"]Target.Value - (0.25 * Fix(Target.Value / 0.25))[/COLOR] <> 0 Then
            Application.Undo
            MsgBox "U gaf een onjuist getal in"
         End If
      End If
   End If
End Sub
 
@conseclusie en @alphamax hiermee is het probleem van de deling inderdaad opgelost. Bedankt.
Maar nu werkt application.undo niet steeds. Bovendien wordt er soms na invoer in bijv. sheet2 ineens naar sheet1 gesprongen. Iemand een idee?
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan