View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Dan Thompson Dan Thompson is offline
external usenet poster
 
Posts: 125
Default Conditional "If Not ... Then" Statement not working properly H

Thanks for the advice I fixed the problem and I realize it was to do with the
order of logic in my code. I understand now that however you present your
condition in an "IF" statement the "IF" statement always hast to evaluate to
be true in order for VBA to execute the code in the "IF" statement.
Bob = 42
IF Bob = 42 Then MsgBox "Happy Birthday" (Condition executes because it is
TRUE that Bob is 42)
Bob =35
IF Not Bob = 42 Then Exit Sub (Condition executes because it is TRUE that
Bob is NOT 42)
Both If statements execute because they are evaluated to be true
Right ??

on the other hand
Bob = 42
IF Not Bob = 42 Then Exit Sub (Condition will not execute because it is
FALSE and the "IF" statement will only execute code when the "IF" statement
returns true)

I think I got it :)


btw I looked at that link you sent me and it just made my head spin lol
too deep for me

Dan Thompson

"JLGWhiz" wrote:

I get all screwed around with the logic tables and have to use trial and
error when I get into testing multiple boolean results. Here is a site that
explains where the problem comes from.

http://www.rwc.uc.edu/koehler/comath/21.html

The If statement has to capture the condition so that the result is true to
make the command line execute, even if the result is negative. This means
that you can check to see if it Is, or you can check to see if it is Not,
but you cannot check to see if it is maybe. So when you use the And or the
Or operators in the criteria line of the If statement you need to be aware
of what the logic is doing in evaluating the statement.



"Dan Thompson" wrote in message
...
Hey JLGWhiz
This is what I am trying to accomplish only I would like to do it in the
shortest amount of code as possible. I think my code is a little long for
this macro. here is the code

Sub test()
Dim one As Boolean, two As Boolean, three As Boolean
Dim Count As Integer
one = True
two = True
three = True


For Count = 1 To 4
If Count = 1 Then one = False
If Count = 2 Then two = False
If Count = 3 Then three = False
MsgBox "Count # " & Count
If one = False Or two = False Or three = False Then
MsgBox "One or more of the 3 conditions are false"
End If
If one And two And three = True Then
MsgBox "All of the 3 conditions are true"
End If
one = True
two = True
three = True
Next Count
End Sub


"JLGWhiz" wrote:

Also:

If Not one = True Or Not two = True Or Not three = False Then
MsgBox "One or more of the 3 conditions are false"
End If



"Dan Thompson" wrote in message
...
The following code should pop up a message box but it is not doing so
where
am I going wrong ?


Sub test()
Dim one As Boolean, two As Boolean, three As Boolean
one = True
two = True
three = False

If Not one = True And Not two = True And Not three = False Then
MsgBox "One or more of the 3 conditions are false"
End If
End Sub

Dan Thompson