VBA code with and / or statement

S

Steve

I cannot get this to run the [ELK] macro when these 3 conditions are
met. It worked until I added the OR statement. I would really like
it to check if the reference cells have numbers in them. Then if NOT
run the ELK macro. If Sheet1.Range("b10").Value <> "" Or
Sheet1.Range("b19").Value <> "" And Sheet1.Range("b11:aa11").Value =
"" Then [ELK]

Thanks for any help you can provide
 
N

Nigel

Think of each logical test returning a TRUE or FALSE

......("b10") <> "" is TRUE if NOT equal empty string
......("b19") <> "" is TRUE if NOT equal empty string

If you want BOTH to be TRUE then you must AND them, otherwise OR will return
TRUE if either is TRUE.

Finally the last test ...("b11:aa11") is TRUE if the values are = empty
strings; since you want this condition to be TRUE and the previous condition
to also be TRUE you should AND these as well.
 
D

Dave Peterson

If you want to check a multicell range to see if it's empty (no formulas, no
values), you could use:

if application.counta(sheet1.range("b11:aa11")) = 0 then
'all empty

if you wanted to check to see if they were all filled:

if application.counta(sheet1.range("b11:aa11")) _
= sheet1.range("b11:aa11").cells.count then
'all filled

If you wanted to check to see if at least one cell had something (a value or a
formula) in it:

if application.counta(sheet1.range("b11:aa11")) > 0 then
'all empty

And if I were you, I'd use some ()'s in my check:

if sheet1.range("b10").value <> "" _
or sheet1.range("b19").value <> "" _
And application.counta(sheet1.range("b11:a11")) <> 0 then

if (sheet1.range("b10").value <> "" _
or sheet1.range("b19").value <> "") _
And application.counta(sheet1.range("b11:a11")) <> 0 then

or

if sheet1.range("b10").value <> "" _
or (sheet1.range("b19").value <> "" _
And application.counta(sheet1.range("b11:a11")) <> 0) then

Your code may work exactly the way you want without the ()'s, but personally,
and/or's without ()'s scare the heck out of me.






I cannot get this to run the [ELK] macro when these 3 conditions are
met. It worked until I added the OR statement. I would really like
it to check if the reference cells have numbers in them. Then if NOT
run the ELK macro. If Sheet1.Range("b10").Value <> "" Or
Sheet1.Range("b19").Value <> "" And Sheet1.Range("b11:aa11").Value =
"" Then [ELK]

Thanks for any help you can provide
 
S

Steve

If you want to check a multicell range to see if it's empty (no formulas, no
values), you could use:

if application.counta(sheet1.range("b11:aa11")) = 0 then
  'all empty

if you wanted to check to see if they were all filled:

if application.counta(sheet1.range("b11:aa11")) _
  = sheet1.range("b11:aa11").cells.count then
  'all filled

If you wanted to check to see if at least one cell had something (a value or a
formula) in it:

if application.counta(sheet1.range("b11:aa11")) > 0 then
  'all empty

And if I were you, I'd use some ()'s in my check:

if sheet1.range("b10").value <> "" _
 or sheet1.range("b19").value <> "" _
 And application.counta(sheet1.range("b11:a11")) <> 0 then

if (sheet1.range("b10").value <> "" _
  or sheet1.range("b19").value <> "") _
 And application.counta(sheet1.range("b11:a11")) <> 0 then

or

if sheet1.range("b10").value <> "" _
 or (sheet1.range("b19").value <> "" _
 And application.counta(sheet1.range("b11:a11")) <> 0) then

Your code may work exactly the way you want without the ()'s, but personally,
and/or's without ()'s scare the heck out of me.
I cannot get this to run the [ELK] macro when these 3 conditions are
met.  It worked until I added the OR statement.   I would really like
it to check if the reference cells have numbers in them. Then if NOT
run the ELK macro.       If Sheet1.Range("b10").Value <> "" Or
Sheet1.Range("b19").Value <> "" And Sheet1.Range("b11:aa11").Value =
"" Then [ELK]
Thanks for any help you can provide

Thanks for the help ! Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top