Conditional Cell Input Capability Now Needs to Scale

This request was originally handled successfully by Siddharth.  I need this application to "scale".  Here is the complete file.  There are 15 answers, 12 categories, a total of 180 responses. I think there are only two things that need to be modified for this to work.  One is that the condition on 3 False Answers has to be reset after the 15th answer (for the next category) and the other thing is that right now it needs to allow for three FALSE answers (I can only log two at the present time).

B.
Who is Participating?

Commented:

Sid
Total-File.xlsm
0

Commented:
Sample Attached. Please try it and let me know if it is okay?

Sid

Code Used

``````Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A12:A191")) Is Nothing Then

Select Case Target.Row
Case 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177
Case Else
If Len(Trim(Target.Offset(-1).Value)) = 0 Then Target.Value = ""
End Select

Select Case Target.Row
Case 11 To 27
j = 26: k = 15
Case 26 To 42
j = 41: k = 30
Case 41 To 57
j = 56: k = 45
Case 56 To 72
j = 71: k = 60
Case 71 To 87
j = 86: k = 75
Case 86 To 102
j = 101: k = 90
Case 101 To 117
j = 116: k = 105
Case 116 To 132
j = 131: k = 120
Case 131 To 147
j = 146: k = 135
Case 146 To 162
j = 161: k = 150
Case 161 To 177
j = 176: k = 165
Case 176 To 192
j = 191: k = 180
End Select

On Error Resume Next
'~~> To check for 3 false conditions
For i = j To k Step -1
If Range("A" & i).Offset(-1).Value = "False" And _
Range("A" & i).Offset(-2).Value = "False" And _
Range("A" & i).Offset(-3).Value = "False" And _
Range("A" & i).Offset(-4).Value = "False" Then
Target.Value = ""
Application.EnableEvents = True
Exit Sub
End If
Next
On Error GoTo 0
'~~> Check if the chnage is happening in B12:B26
ElseIf Not Intersect(Target, Range("B12:B191")) Is Nothing Then
'~~> To check for rest 3 conditions
If Target.Offset(, -1).Value = "True" Or _
Target.Offset(, -1).Value = "N/A" Or _
Len(Trim(Target.Offset(, -1).Value)) = 0 Then Target.Value = ""
End If
Application.EnableEvents = True
End Sub
``````
Total-File.xlsm
0

Author Commented:
Sid,

Almost there!  When you hit the third "False" you should not be able to input anything (including true, partial or false) in any of the remaining cells in that section. The counter starts over on the next section.

Thank you!
0

Commented:
>>> The counter starts over on the next section.

yes that is because I set it like that. You don't want that?

Sid
0

Commented:
If you don't want that then replace the code

Select Case Target.Row
Case 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177
Case Else
If Len(Trim(Target.Offset(-1).Value)) = 0 Then Target.Value = ""
End Select

by

If Target.Row <> 12 And Len(Trim(Target.Offset(-1).Value)) = 0 Then Target.Value = ""

in the above code and now try.

Sid
0

Author Commented:
Sorry for the confusion.  Here's what I'm getting.  With Macros enabled, I'm able to add more to the fields below.  See the picture I have sent; you will see three falses than I can add more below.  I'm not suppose to be able to add to the section once the threshold has been reached.

B.

Conditional-Column.png
0

Author Commented:
Sid,

"Thank you!"  Works as promised..... you do very very good work.

When you get a chance, I sent you several operational questions about "The Timer" as to what happens to the other passwords when it changes to LOCKME.

Thanks again,

B.
0

Author Commented:
Sid,

Greetings.  The App. works great but I'm going to ask (hopefully) a simple question about an "enhancement" to this code.  I'd like the ability to have a cell in the spreadsheet that actually determines how many "falses" are necessary to shut down the "further questions" (currently set at 3 ((hardcoded)).  I think it's an enhancement to this part of the code:

On Error Resume Next
'~~> To check for 3 false conditions
For i = j To k Step -1
If Len(Trim(Range("A" & i))) <> 0 And Range("A" & i).Offset(-1).Value = "False" And _
Range("A" & i).Offset(-2).Value = "False" And _
Range("A" & i).Offset(-3).Value = "False" Then
Target.Value = ""
Application.EnableEvents = True
Exit Sub
0

Commented:
So basically, you want to, instead of hard coding, want to specify the number of "False" dynamically?

Sid
0

Author Commented:
Yes.  I know this is an enhancement so I issued it as a "related question".  I think you are best to enhance it but wanted to insure you are rewarded for your efforts.  In the file I have a cell that should be able to handle 1 - 15 and based on the number you input, it will allow for that many falses before locking the rest of the section.

Thank you,

B.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.