View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
JLGWhiz[_2_] JLGWhiz[_2_] is offline
external usenet poster
 
Posts: 1,565
Default Conditional "If Not ... Then" Statement not working properly H

You got the basic part. That is what counts. And it is all in the logic.


"Dan Thompson" wrote in message
...
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