if statement in an if statement

M

meiftan

Dears,
I have a trouble in using if statement in macro, hope someone with
"Excel"ent mind answer my question, sorry for my bad English.

Here's the macro in my mind,

If Userform1.Checkbox1.Value = True (If "AND" Userform1.Checkbox2.Value =
True(If "AND" Userform1.Checkbox3.Value)) Then
Run something

I used this before,

If Userform1.Checkbox1.Value = True And Userform1.Checkbox2.Value = True And
Userform1.Checkbox3.Value = True Then
Run something

But when the Checkbox2.Value = False , It doesn't work , I changed AND to
OR, same result, the point is when the value = False, then non-activate that
condition.

Regards,
 
J

JMB

This code that you posted works fine for me
If Userform1.Checkbox1.Value = True And Userform1.Checkbox2.Value = True And
Userform1.Checkbox3.Value = True Then
Run something

Are you sure you are referencing the correct checkbox control??
 
M

meiftan

thank you for your reply,

the code works only if the user checks all the checkboxes, when there is a
checkbox not checked, example

checkbox1 checked
checkbox2 not checked
checkbox3 checked

the code won't run the 'something'
I need something like this

If Userform1.Checkbox1.Value = True (AND this conditionUserform1.Checkbox3.Value = True Then
Run something

So, based on example, the code will only run like this

If Userform1.Checkbox1.Value = True And Userform1.Checkbox3.Value = True Then
Run something
End If

If I have to make codes for the all possible user's check/s, then I have to
make 7 different codes like this

If Userfom1.Checkbox1.Value = True Then
Run something
End If

If Userfom1.Checkbox1.Value = True And Userfom1.Checkbox2.Value = True Then
Run something
End If

If Userfom1.Checkbox1.Value = True And Userfom1.Checkbox3.Value = True Then
Run something
End If

If Userfom1.Checkbox2.Value = True Then
Run something
End If

If Userfom1.Checkbox2.Value = True And Userfom1.Checkbox3.Value = True Then
Run something
End If

If Userfom1.Checkbox3.Value = True Then
Run something
End If

If Userfom1.Checkbox1.Value = True And Userfom1.Checkbox2.Value = True And
Userfom1.Checkbox3.Value = True Then
Run something
End If

the codes need to be simplified

Best Regards,
 
T

TWR

Try this:
Dim i as integer

i=0
With UserForm1
If .CheckBox1.value=true then i=i+1
If .CheckBox2.value=true then i=i+2
If .CheckBox3.value=true then i=i+4
End With

Select Case i
Case 0 ' No CB's Checked
Run Something
Case 1 ' Only CB1 Checked
Run Something
Case 2 ' Only CB2 Checked
Run Something
Case 3 ' CB's 1 & 2 Checked
Run Something
Case 4 ' Only CB 3 Checked
Run Something
Case 5 ' CB's 1 & 3 Checked
Run Something
Case 6 ' CB's 2 & 3 Checked
Run Something
Case 7 ' All CB's Checked
Run Something
End Select
 
M

meiftan

Really cool, Thank you for you help,

now I just make the code based on yours,
Actually there are 9 (nine!) checkboxes on my userform,
how many cases of possible user's check/s that I need to make?
There must be a lot of cases!

Once again, thank you so much for your help Mr.TWR
 
J

JMB

My apologies, I was not following your original question. I think you are
looking at 511 different combinations.
 
M

meiftan

dear all,

sorry for my late response
thank you for your calculation for the cases Mr. JMB
I think that if I had to make those 511 combination of codes,
then I wasted my time just for checking which checkbox/es is/are checked or
not ,
when the combination codes have been done,
there are another 511 combination of 'Run something' to be completed

Is this the best way to make a userform with alot of checkboxes for the user
to check some checkboxes and for us to identify which checkbox/es is/are
checked or not?

thanks all for the big idea,

warm regards,
 
J

JMB

I can't give an opinion on the "best" way to approach it as there are not
enough details of your project.

Generally, I would try to determine if any combinations can be eliminated
(ie - if Checkbox1 is checked, is it possible for Checkbox3 to be also be
checked). Also, are there any combinations that would result in the same
action being performed (are there actually 511 completely different actions
that will need to be taken depending on what checkboxes are checked?) Look
to see what can be combined.

Post some details to outline more specifically what you are working with and
what you are trying to accomplish. I or someone else may be able to assist.
 

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