Question

I am using an inputbox the get a number from a user. I want to avoid not allowed input and am stuck with negative numbers. The only input which should be processed is an integer between 1 and 500. I don't understand why -1 is still triggered. Here is my code so far:

LBefore = InputBox("lines?", "", ">>> insert number <<<", 11660, 9540)

Select Case StrPtr(LBefore)
  Case 0
    'Cancel pressed
    Exit Sub
  Case Else

    If (LBefore <> "") Then
    'Check for numeretical value
       If IsNumeric(LBefore) Then
             cijfer = Abs(CByte(LBefore))
               'Check to see if value is in allowed range
                If (cijfer >= 1) And (cijfer <= 500) Then
                   'do stuff ...
                end If
       End If
     End If
   End Select
Was it helpful?

Solution

It's triggered because you use cijfer = Abs(CByte(LBefore)).
Abs is absolute function, so negative numbers become positive!
Try using cijfer = CInt(LBefore).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top