ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Validation Rule anomaly (https://www.excelbanter.com/excel-worksheet-functions/134049-validation-rule-anomaly.html)

Bob

Validation Rule anomaly
 
I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Toppers

Validation Rule anomaly
 
As far as I am aware, any Data Validation does not execute if values are
pasted in.

Your best (only?) solution is to use a worksheet event module (VBA) to check
your condition.

Right click on w/sheet tab and copy/paste code below:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ws_exit
Application.EnableEvents = True
If Target.Address = "$A$2" Then
c = Target.Value
If Application.Or(InStr(1, c, " ") 0, InStr(1, c, Asc(160)) 0) Then
Target.Value = ""
MsgBox "Invalid entry"
End If
End If
ws_exit:
Application.EnableEvents = True


End Sub
"Bob" wrote:

Thanks for the suggestion. Unfortunately, your solution still allows someone
to paste (instead of manually inputting) some text with a space, and not get
trapped by the validation rule.
Bob


"Toppers" wrote:

try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Bob

Validation Rule anomaly
 
Thanks for all your help! i sincerely appreciate.
Bob


"Toppers" wrote:

Change "If Target.address ..." to "If Target.Column = 1 Then"


"Bob" wrote:

Thanks for your help! As written, does your code work on all cells in column
A, or just A2? If the latter, can you tell me how to modify your code so it
works on all cells in column A? (I'm a novice when it comes to VBA.)
Thanks again,
Bob


"Toppers" wrote:

As far as I am aware, any Data Validation does not execute if values are
pasted in.

Your best (only?) solution is to use a worksheet event module (VBA) to check
your condition.

Right click on w/sheet tab and copy/paste code below:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ws_exit
Application.EnableEvents = True
If Target.Address = "$A$2" Then
c = Target.Value
If Application.Or(InStr(1, c, " ") 0, InStr(1, c, Asc(160)) 0) Then
Target.Value = ""
MsgBox "Invalid entry"
End If
End If
ws_exit:
Application.EnableEvents = True


End Sub
"Bob" wrote:

Thanks for the suggestion. Unfortunately, your solution still allows someone
to paste (instead of manually inputting) some text with a space, and not get
trapped by the validation rule.
Bob


"Toppers" wrote:

try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Bob

Validation Rule anomaly
 
Thanks for the suggestion. Unfortunately, your solution still allows someone
to paste (instead of manually inputting) some text with a space, and not get
trapped by the validation rule.
Bob


"Toppers" wrote:

try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Bob

Validation Rule anomaly
 
Thanks for your help! As written, does your code work on all cells in column
A, or just A2? If the latter, can you tell me how to modify your code so it
works on all cells in column A? (I'm a novice when it comes to VBA.)
Thanks again,
Bob


"Toppers" wrote:

As far as I am aware, any Data Validation does not execute if values are
pasted in.

Your best (only?) solution is to use a worksheet event module (VBA) to check
your condition.

Right click on w/sheet tab and copy/paste code below:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ws_exit
Application.EnableEvents = True
If Target.Address = "$A$2" Then
c = Target.Value
If Application.Or(InStr(1, c, " ") 0, InStr(1, c, Asc(160)) 0) Then
Target.Value = ""
MsgBox "Invalid entry"
End If
End If
ws_exit:
Application.EnableEvents = True


End Sub
"Bob" wrote:

Thanks for the suggestion. Unfortunately, your solution still allows someone
to paste (instead of manually inputting) some text with a space, and not get
trapped by the validation rule.
Bob


"Toppers" wrote:

try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Toppers

Validation Rule anomaly
 
try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob


Toppers

Validation Rule anomaly
 
Change "If Target.address ..." to "If Target.Column = 1 Then"


"Bob" wrote:

Thanks for your help! As written, does your code work on all cells in column
A, or just A2? If the latter, can you tell me how to modify your code so it
works on all cells in column A? (I'm a novice when it comes to VBA.)
Thanks again,
Bob


"Toppers" wrote:

As far as I am aware, any Data Validation does not execute if values are
pasted in.

Your best (only?) solution is to use a worksheet event module (VBA) to check
your condition.

Right click on w/sheet tab and copy/paste code below:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ws_exit
Application.EnableEvents = True
If Target.Address = "$A$2" Then
c = Target.Value
If Application.Or(InStr(1, c, " ") 0, InStr(1, c, Asc(160)) 0) Then
Target.Value = ""
MsgBox "Invalid entry"
End If
End If
ws_exit:
Application.EnableEvents = True


End Sub
"Bob" wrote:

Thanks for the suggestion. Unfortunately, your solution still allows someone
to paste (instead of manually inputting) some text with a space, and not get
trapped by the validation rule.
Bob


"Toppers" wrote:

try:

=AND(NOT(ISNUMBER(FIND(" ",A2))),NOT(ISNUMBER(FIND(CHAR(160),A2))))

HTH

"Bob" wrote:

I have the following custom validation rule that checks for, and disallows,
the inputting of a space or CHAR(160):

=AND(ISERROR(FIND(" ",A2))=TRUE,ISERROR(FIND(CHAR(160),A2))=TRUE)

However, if someone pastes some text containing a space, the validation rule
doesn't trap it!

Can anyone tell me why this occurs, and a possible fix to my validation rule?
Thanks,
Bob



All times are GMT +1. The time now is 09:46 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com