Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 219
Default Data Validation

Trying to validate in the following scenario:
Cells H7 and I7 have dates in them (testing using 8/3/09 and 8/4/09).
Before an entry can be made in K7, I have a custom formula to check and see
that both dates in H7 and I7 are in the same month. The following code is
supposed to enter the validation criteria:

Public Sub DataValidationBDOCsmEDOC()

With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater, Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow &
")"
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "EDOC not same month as BDOC"
.InputMessage = ""
.ErrorMessage = _
"The BDOC and the EDOC are in different months." _
& Chr(10) & "Please correct these dates before entering the rates."
.ShowInput = False
.ShowError = True
End With

End Sub

The resulting custom formula in the Data Validation box is

=MONTH(H7)=MONTH(I7)

But when I put in dates of 8/3/09 and 8/4/09, it tells me they aren't in
the same month. When I put "=MONTH(H7)" and "=(MONTH(I7)" in other cells,
they both evaluate to 8. So why am I getting an invalid data message?

Thanks in advance.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 395
Default Data Validation

Salgud-

Try changing:
..Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater , Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow
&")"

to
..Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=MONTH(H8)=MONTH(I8)"

I believe the issue is not with the formula, but the use of the date/greater
than parameters.

Please note that this still isn't perfect; the data validation appears to
allow a date in one cell and a blank in the other to still evaluate as 'True'
and allow data entry in K7. You may have to add a few conditions to your
formula to address this issue.

HTH,
Keith

"salgud" wrote:

Trying to validate in the following scenario:
Cells H7 and I7 have dates in them (testing using 8/3/09 and 8/4/09).
Before an entry can be made in K7, I have a custom formula to check and see
that both dates in H7 and I7 are in the same month. The following code is
supposed to enter the validation criteria:

Public Sub DataValidationBDOCsmEDOC()

With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater, Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow &
")"
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "EDOC not same month as BDOC"
.InputMessage = ""
.ErrorMessage = _
"The BDOC and the EDOC are in different months." _
& Chr(10) & "Please correct these dates before entering the rates."
.ShowInput = False
.ShowError = True
End With

End Sub

The resulting custom formula in the Data Validation box is

=MONTH(H7)=MONTH(I7)

But when I put in dates of 8/3/09 and 8/4/09, it tells me they aren't in
the same month. When I put "=MONTH(H7)" and "=(MONTH(I7)" in other cells,
they both evaluate to 8. So why am I getting an invalid data message?

Thanks in advance.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 219
Default Data Validation

On Wed, 2 Sep 2009 13:01:04 -0700, ker_01 wrote:

Salgud-

Try changing:
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater , Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow
&")"

to
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=MONTH(H8)=MONTH(I8)"

I believe the issue is not with the formula, but the use of the date/greater
than parameters.

Please note that this still isn't perfect; the data validation appears to
allow a date in one cell and a blank in the other to still evaluate as 'True'
and allow data entry in K7. You may have to add a few conditions to your
formula to address this issue.

HTH,
Keith

Thanks for your reply. As I said in my original post, the actual custom
validation formula inserted by the macro is

=MONTH(H7)=MONTH(I7)

which is the same thing (different row) as what you recommended. If I just
put the "7" in the code, all subsequent rows would validate based on the
dates in row 7, which is not what I want. I need to have the row be dynamic
for the spreadsheet to work, but so far, I have no indication that it's the
dynamic part that's causing the problem. The resulting formula is exactly
what I wanted it to be, it's just not validating valid dates. Or am I
missing something here?

"salgud" wrote:

Trying to validate in the following scenario:
Cells H7 and I7 have dates in them (testing using 8/3/09 and 8/4/09).
Before an entry can be made in K7, I have a custom formula to check and see
that both dates in H7 and I7 are in the same month. The following code is
supposed to enter the validation criteria:

Public Sub DataValidationBDOCsmEDOC()

With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater, Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow &
")"
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "EDOC not same month as BDOC"
.InputMessage = ""
.ErrorMessage = _
"The BDOC and the EDOC are in different months." _
& Chr(10) & "Please correct these dates before entering the rates."
.ShowInput = False
.ShowError = True
End With

End Sub

The resulting custom formula in the Data Validation box is

=MONTH(H7)=MONTH(I7)

But when I put in dates of 8/3/09 and 8/4/09, it tells me they aren't in
the same month. When I put "=MONTH(H7)" and "=(MONTH(I7)" in other cells,
they both evaluate to 8. So why am I getting an invalid data message?

Thanks in advance.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 395
Default Data Validation

You can still use your custom row identifier per your original code. The only
thing you need to change are the 'type' and 'operator' variables in your VBA,
not the formula itself. I believe the issue is not with the formula, but the
use of the 'xlValidateDate' and 'xlGreater' parameters.

Again, you should still determine whether there are any circumstances where
a user might try to enter a value in Column K one (or both) of the date
fields is left blank, because I don't think your validation will stop entry
if one (or both) of the date fields are blank.

HTH,
Keith

"salgud" wrote:

On Wed, 2 Sep 2009 13:01:04 -0700, ker_01 wrote:

Salgud-

Try changing:
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater , Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow
&")"

to
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=MONTH(H8)=MONTH(I8)"

I believe the issue is not with the formula, but the use of the date/greater
than parameters.

Please note that this still isn't perfect; the data validation appears to
allow a date in one cell and a blank in the other to still evaluate as 'True'
and allow data entry in K7. You may have to add a few conditions to your
formula to address this issue.

HTH,
Keith

Thanks for your reply. As I said in my original post, the actual custom
validation formula inserted by the macro is

=MONTH(H7)=MONTH(I7)

which is the same thing (different row) as what you recommended. If I just
put the "7" in the code, all subsequent rows would validate based on the
dates in row 7, which is not what I want. I need to have the row be dynamic
for the spreadsheet to work, but so far, I have no indication that it's the
dynamic part that's causing the problem. The resulting formula is exactly
what I wanted it to be, it's just not validating valid dates. Or am I
missing something here?

"salgud" wrote:

Trying to validate in the following scenario:
Cells H7 and I7 have dates in them (testing using 8/3/09 and 8/4/09).
Before an entry can be made in K7, I have a custom formula to check and see
that both dates in H7 and I7 are in the same month. The following code is
supposed to enter the validation criteria:

Public Sub DataValidationBDOCsmEDOC()

With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater, Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow &
")"
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "EDOC not same month as BDOC"
.InputMessage = ""
.ErrorMessage = _
"The BDOC and the EDOC are in different months." _
& Chr(10) & "Please correct these dates before entering the rates."
.ShowInput = False
.ShowError = True
End With

End Sub

The resulting custom formula in the Data Validation box is

=MONTH(H7)=MONTH(I7)

But when I put in dates of 8/3/09 and 8/4/09, it tells me they aren't in
the same month. When I put "=MONTH(H7)" and "=(MONTH(I7)" in other cells,
they both evaluate to 8. So why am I getting an invalid data message?

Thanks in advance.


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 395
Default Data Validation

Add
..IgnoreBlank = False
to deal with the issue of blank date fields being ignored (not triggering
the validation).

HTH,
Keith

"salgud" wrote:

On Wed, 2 Sep 2009 13:01:04 -0700, ker_01 wrote:

Salgud-

Try changing:
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater , Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow
&")"

to
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=MONTH(H8)=MONTH(I8)"

I believe the issue is not with the formula, but the use of the date/greater
than parameters.

Please note that this still isn't perfect; the data validation appears to
allow a date in one cell and a blank in the other to still evaluate as 'True'
and allow data entry in K7. You may have to add a few conditions to your
formula to address this issue.

HTH,
Keith

Thanks for your reply. As I said in my original post, the actual custom
validation formula inserted by the macro is

=MONTH(H7)=MONTH(I7)

which is the same thing (different row) as what you recommended. If I just
put the "7" in the code, all subsequent rows would validate based on the
dates in row 7, which is not what I want. I need to have the row be dynamic
for the spreadsheet to work, but so far, I have no indication that it's the
dynamic part that's causing the problem. The resulting formula is exactly
what I wanted it to be, it's just not validating valid dates. Or am I
missing something here?

"salgud" wrote:

Trying to validate in the following scenario:
Cells H7 and I7 have dates in them (testing using 8/3/09 and 8/4/09).
Before an entry can be made in K7, I have a custom formula to check and see
that both dates in H7 and I7 are in the same month. The following code is
supposed to enter the validation criteria:

Public Sub DataValidationBDOCsmEDOC()

With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreater, Formula1:="=MONTH(H" & lCurRow & ")=MONTH(I" & lCurRow &
")"
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "EDOC not same month as BDOC"
.InputMessage = ""
.ErrorMessage = _
"The BDOC and the EDOC are in different months." _
& Chr(10) & "Please correct these dates before entering the rates."
.ShowInput = False
.ShowError = True
End With

End Sub

The resulting custom formula in the Data Validation box is

=MONTH(H7)=MONTH(I7)

But when I put in dates of 8/3/09 and 8/4/09, it tells me they aren't in
the same month. When I put "=MONTH(H7)" and "=(MONTH(I7)" in other cells,
they both evaluate to 8. So why am I getting an invalid data message?

Thanks in advance.




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 219
Default Data Validation

On Wed, 2 Sep 2009 14:54:01 -0700, ker_01 wrote:

.IgnoreBlank = False


Thanks for the reply. It worked this time! It will now only accept an entry
if the 2 dates are in the same month.

But it will still accept blanks, unfortunately. I don't know if it can
check two cells for blank, so that check may have to be reserved for the
final check that is done after the spreadsheet is completed.

Thanks again.
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 395
Default Data Validation

Try editing your formula to adapt the following logic (aircode)- you will
still have your dynamic formula, just change it to an "AND" condition, and
add the two final conditions using your dynamic row qualifier (lcurRow, if I
recall correctly)

=and(month(a1)=month(a2),a10, a20)

And keep the .ignoreblank = false line

That should do it
:)

"salgud" wrote:

On Wed, 2 Sep 2009 14:54:01 -0700, ker_01 wrote:

.IgnoreBlank = False


Thanks for the reply. It worked this time! It will now only accept an entry
if the 2 dates are in the same month.

But it will still accept blanks, unfortunately. I don't know if it can
check two cells for blank, so that check may have to be reserved for the
final check that is done after the spreadsheet is completed.

Thanks again.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
custom data validation on cells with data validation values AKrobbins Excel Worksheet Functions 2 June 21st 11 04:20 PM
Validation Data using Validation Table cell range..... Dermot Excel Discussion (Misc queries) 16 January 5th 10 09:35 PM
Crazy Data Validation ... List Validation Not Working TW Bake Excel Programming 1 March 29th 07 02:41 AM
data validation invalid in dynamic validation list ilia Excel Worksheet Functions 0 November 7th 06 12:54 PM
Data validation with validation lists and combo boxs Keith Excel Discussion (Misc queries) 1 October 12th 06 11:08 AM


All times are GMT +1. The time now is 04:01 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"