Ok, let's see if, without using an IDE or a VB compiler, we can find some bugs!
Firstly, let's simplify that huge loop - notice how ever block after each If statement checking intCount is the same? We can refactor this to use the loop effectively:
Private Sub btnVerify_Click(sender As Object, e As EventArgs) Handles btnVerify.Click
Dim intMinimum() As Integer = {7, 5, 0, 0, 6, 3, 4}
Dim intMaximum() As Integer = {9, 7, 4, 9, 9, 6, 8}
Dim strTextboxes() As String = {txtBox1.Text, txtBox2.Text, txtBox3.Text, txtBox4.Text, txtBox5.Text, txtBox6.Text, txtBox7.Text}
Dim intNumber As Integer
Dim intCount As Integer
For intCount = 0 To 6
If Integer.TryParse(strTextboxes(intCount), intNumber) Then
If Not (intNumber >= intMinimum(intCount) And intNumber <= intMaximum(intCount)) Then
MessageBox.Show(String.Format("Enter a number between {0} and {1}",intMinimum(intCount), intMaximum(intCount)), String.Format("Digit {0}", intNumber+1))
Return
End If
End If
Next
MessageBox.Show("The PIN is valid")
End Sub
Now that we have cleaned up the code, a potential logical error becomes very obvious. The first line in the loop tries to parse the text box.
For intCount = 0 To 6
If Integer.TryParse(strTextboxes(intCount), intNumber) Then
End If
Next
If this line fails to parse the number, it will return false, skipping to the end of the loop and continuing as if everything is OK. Which leads us to:
MessageBox.Show("The PIN is valid")
Which is the behaviour your described. You need to make sure that if Integer.TryParse fails that it is handled correctly. Something like:
For intCount = 0 To 6
If Not Integer.TryParse(strTextboxes(intCount), intNumber) Then
MessageBox.Show("Please enter a number only.", String.Format("Digit {0}", intCount+1))
Return
End If
If Not (intNumber >= intMinimum(intCount) And intNumber <= intMaximum(intCount)) Then
MessageBox.Show(String.Format("Enter a number between {0} and {1}",intMinimum(intCount), intMaximum(intCount)), String.Format("Digit {0}", intNumber+1))
Return
End If
Next
Something like that, anyhow. Please keep in mind I'm a C# guy, I haven't done VB code since VB6 like 15 odd years ago, and I didn't use a compiler to check any of this code.
In my experience, logical/flow bugs like this come down to simplify the code as much as possible, and then if you are using Visual Studio your IDE learn how to use the debugger properly (step-into and quick watch in VS would've solved this for you in ~30 seconds). If you aren't using VS, use VS. Seriously. (for .NET development, anyhow)