Need help with IF statement ! ! !

  • Thread starter Thread starter Shetty
  • Start date Start date
S

Shetty

I have a summary sheet which gets data from the other sheets. Cells B17 and C17
gets value of count from the different sources. I was writing a macro that when
run along with another macro check the value of both the cell and shows message
box accordingly. But it shows error that ===== Else without If ====== Code is
given below.

Sub final()
Dim master As Range
Dim ind As Range

Set master = Range(B17)
Set ind = Range(C17)

If master(cell.Value) = ind(cell.Value) Then MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

End Sub


You can see that the If is already there but compiler cant see it. It seems a
silly question but
Can any one help please?
Regards,
 
Shetty,

Your if statement is set up to be a simple if ... then, if you want to include
any elseif's or an else

If master(cell.Value) = ind(cell.Value) Then
MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

Dan E
 
Thanks for your reply.

I have corrected the code but still it gives the error that range of
object worksheet failed. (Run time error 1004)
Here is the code. Macro hold at set master line.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim master As Range
Dim ind As Range
Set master = Range(B18).Value ====== here macro stops with
highlighting
this line with yellow colour====
Set ind = Range(C18).Value

If master(cell.Value) = ind(cell.Value) Then
MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

End Sub

When I put courser aerrow at this lie on master it shows
master=nothing and when put curser on B18 is shows b18=Empty with a
small yellow lable.
Simmilarly with ind and C18.

Can you please point out where I am misteking?
Regards,
Shetty

----- Dan E wrote: -----

Shetty,

Your if statement is set up to be a simple if ... then, if you
want to include
any elseif's or an else

If master(cell.Value) = ind(cell.Value) Then
MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

Dan E

Shetty said:
I have a summary sheet which gets data from the other sheets. Cells B17 and C17
gets value of count from the different sources. I was writing a macro that when
run along with another macro check the value of both the cell and shows message
box accordingly. But it shows error that ===== Else without If ====== Code is
given below.

Sub final()
Dim master As Range
Dim ind As Range

Set master = Range(B17)
Set ind = Range(C17)

If master(cell.Value) = ind(cell.Value) Then MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

End Sub


You can see that the If is already there but compiler cant see it. It seems a
silly question but
Can any one help please?
Regards,
 
Shetty,

Your going to run into numerous problems with your code.

First your current problem.
Your trying to set an object (A range) to be a value
Set master = Range(B18).Value <-also missing quotes around range
Set ind = Range(C18).Value

What you need to do is set the object to an object
Set master = Range("B18")
Set ind = Range("C18")

Your next problem lies in
If master(cell.Value) = ind(cell.Value) Then
I assume you want the value's of cells B18 and C18.

You should use:
If master.Value = ind.Value Then

Your finished product.
Dim master As Range
Dim ind As Range
Set master = Range("B18")
Set ind = Range("D18")

If master.Value = ind.Value Then
MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

End Sub

But unless your refering to master and ind a lot more than this it
would be easier (much less code)

If Range("D18").Value = Range("C18").Value Then
MsgBox "Segregation is OK"
Else: MsgBox "Please check the details again, there is an error"
End If

Dan E
 
CODE SHOULD BE:

Dim master As Range
Dim ind As Range
Set master = Range("B18")
Set ind = Range("C18")

If master.Value = ind.Value Then
MsgBox "Sagregation is OKEY"
Else: MsgBox "Please check the details again. There is an error"
End If

End Sub

AND

If Range("B18").Value = Range("C18").Value Then
MsgBox "Segregation is OK"
Else: MsgBox "Please check the details again, there is an error"
End If

Got the B's and C's a little mixed up...

Dan E
 
Thanks Dan =:)
The second code is exactly what I want to do. Because I failed with
this, I have tried to use set range etc which was also wrong. You have
explained nicely how and where I made mistakes which lead me to new
hights in VBA.
You help is very much appreciated.
Thanks again.
Regards,
Shetty.
 
Back
Top