Repost of Question on Preventing 2 cells from having the same valu

G

Guest

I had posted this question last week. JLGWhiz kindly posted a solution but I
cannot get it to work 100% of the time. So I am making another appeal for
help.

My original post was:
I have two cells which can be either "Y" or "N". Both have list dropdowns
which are limited to Y or N and field cannot be left blank.

These two fields are mutually exclusive to the extent that both cannot be
"Y". They both can be "N".

If the cell "B6" is set to "Y", the cell "B7" must be set to "N". If the end
user then changes "B7" to "Y", then "B6" must be set to "N".

Below is my code in the Worksheet "Inputs".

If Target.Address = Range("B6") Then
If Range("B6").Value = "Y" Then
Range("B7").Value = "N"
MsgBox "If Interest is in Arrears, you cannot Defer Interest."
End If
End If
If Target.Address = Range("B7") Then
If Range("B7").Value = "Y" Then
Range("B6").Value = "N"
MsgBox "If Interest is being Deferred, you cannot pay interest in arrears."
End If
End If
 
J

JE McGimpsey

You don't say what "I cannot get it to work 100% of the time" means, so
I'm not sure what's wrong with the code. Here's another way:

Const csMsg1 As String = _
"If Interest is in Arrears, you cannot Defer Interest."
Const csMsg2 As String = _
"If Interest is being Deferred, you cannot pay interest in arrears."
Dim nSecond As Long
With Range("B6:B7")
If Not Intersect(Target(1), .Cells) Is Nothing Then
If Target(1).Value = "Y" Then
nSecond = CLng(Target.Address(False, False) = "B7")
With .Item(2 + nSecond)
If .Value = "Y" Then
.Value = "N"
MsgBox Choose(2 + nSecond, csMsg2, csMsg1)
End If
End With
End If
End If
End With
 
G

Guest

Hi Dkline -

If Target.Address = "$B$6" Then
If Range("B6").Value = "Y" Then
Range("B7").Value = "N"
MsgBox "If Interest is in Arrears, you cannot Defer Interest."
End If
End If
If Target.Address = "$B$7" Then
If Range("B7").Value = "Y" Then
Range("B6").Value = "N"
MsgBox "If Interest is being Deferred, you cannot pay interest in arrears."
End If
End If
 
G

Guest

So it was simple as making the Target.Address an absolute?!

I need a proverbial smack upside the head. I say so because I had already
specified a couple of target.addesses in code that preceded this portion of
the code.
 
G

Guest

Thank you for your prompt and correct reply. It works perfectly. I was having
trouble with - on occasion - that when I clicked Y on the Defer button, that
it would not change the Arrears entry 100% of the time. It seemed to have a
mind of its own or gremlins had invaded my computer.

I was running out of hair to pull out. Thanks again.
 

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