Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 270
Default Input Box Asking for Date, and Validating Format

For the life of me, I cannot get this to work; either it keeps looping,
doesn't return the right message, or bombs out. All I'm trying to do is ask
the user to input a date in mm/dd/yy format.
1) If they hit cancel or don't enter anything, then they should get a
message saying they must enter a response.
2) If they enter something but it is not in the mm/dd/yy format, they should
get a message that it is not in the correct format.
3) If they enter it correctly, their response should be put into cell A1.

Can someone PLEASE help me? What I have is:
Sub GetDate()
Dim Response As String
Dim Msg As String
Msg = "Enter the contract start date, in mm/dd/yy format; then click on 'OK'."
Do
Response = InputBox(prompt:=Msg)
If Response = "" Then
MsgBox ("You must enter a response; please try again.")
End If
If Response < Format(CDate(Response), "mm/dd/yy") Then
MsgBox ("Enter a valid date in mm/dd/yy format; please try
again.")
End If
Loop
Range("A1").Value = Response
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,123
Default Input Box Asking for Date, and Validating Format

Hi Paige

Why not use this
http://www.rondebruin.nl/calendar.htm

--
Regards Ron de Bruin
http://www.rondebruin.nl


"Paige" wrote in message ...
For the life of me, I cannot get this to work; either it keeps looping,
doesn't return the right message, or bombs out. All I'm trying to do is ask
the user to input a date in mm/dd/yy format.
1) If they hit cancel or don't enter anything, then they should get a
message saying they must enter a response.
2) If they enter something but it is not in the mm/dd/yy format, they should
get a message that it is not in the correct format.
3) If they enter it correctly, their response should be put into cell A1.

Can someone PLEASE help me? What I have is:
Sub GetDate()
Dim Response As String
Dim Msg As String
Msg = "Enter the contract start date, in mm/dd/yy format; then click on 'OK'."
Do
Response = InputBox(prompt:=Msg)
If Response = "" Then
MsgBox ("You must enter a response; please try again.")
End If
If Response < Format(CDate(Response), "mm/dd/yy") Then
MsgBox ("Enter a valid date in mm/dd/yy format; please try
again.")
End If
Loop
Range("A1").Value = Response
End Sub



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,327
Default Input Box Asking for Date, and Validating Format

You shouldn't require a spesific FORMAT, that's lazy programming, nothing
less. I mean, if a user enters a perfectly valid date in mm/dd/yyyy format
or mmmm d yy format, why on earth should a piece of software reject it and
still expect some respect ? Also, you leave the user no way to cancel the
opertation (which usually returns ""). Please run this code:

Sub Respect()
Dim i As Long
For i = 1 To 20
MsgBox "I won't do it again.", , "Sorry"
Next
End Sub

Now try this, it accepts all common date formats and adjusts to the local
regional settings (mm/dd vs dd/mm). No year (like "Jun 1") = current year.

Sub GetDate()
Dim Response As String
Dim Dt As Date
Dim blnOk As Boolean
Do
Response = InputBox("Enter the contract start date:")
If Response = "" Then Exit Sub
On Error Resume Next
Dt = DateValue(Response)
Select Case Year(Dt)
Case 2006 To 2020
blnOk = True
Case Else
End Select
Loop Until blnOk = True
Range("A1").Value = Dt
End Sub

A calendar, as suggested by Ron, is a good alternative to ensure date
entries.

HTH. Best wishes Harald

"Paige" skrev i melding
...
For the life of me, I cannot get this to work; either it keeps looping,
doesn't return the right message, or bombs out. All I'm trying to do is

ask
the user to input a date in mm/dd/yy format.
1) If they hit cancel or don't enter anything, then they should get a
message saying they must enter a response.
2) If they enter something but it is not in the mm/dd/yy format, they

should
get a message that it is not in the correct format.
3) If they enter it correctly, their response should be put into cell A1.

Can someone PLEASE help me? What I have is:
Sub GetDate()
Dim Response As String
Dim Msg As String
Msg = "Enter the contract start date, in mm/dd/yy format; then click on

'OK'."
Do
Response = InputBox(prompt:=Msg)
If Response = "" Then
MsgBox ("You must enter a response; please try again.")
End If
If Response < Format(CDate(Response), "mm/dd/yy") Then
MsgBox ("Enter a valid date in mm/dd/yy format; please try
again.")
End If
Loop
Range("A1").Value = Response
End Sub



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 270
Default Input Box Asking for Date, and Validating Format

Ouch!!! Being that I'm learning, didn't realize this is considered lazy
programming. Thanks guys for your responses/advice; will work through them.
Have a good one!

"Harald Staff" wrote:

You shouldn't require a spesific FORMAT, that's lazy programming, nothing
less. I mean, if a user enters a perfectly valid date in mm/dd/yyyy format
or mmmm d yy format, why on earth should a piece of software reject it and
still expect some respect ? Also, you leave the user no way to cancel the
opertation (which usually returns ""). Please run this code:

Sub Respect()
Dim i As Long
For i = 1 To 20
MsgBox "I won't do it again.", , "Sorry"
Next
End Sub

Now try this, it accepts all common date formats and adjusts to the local
regional settings (mm/dd vs dd/mm). No year (like "Jun 1") = current year.

Sub GetDate()
Dim Response As String
Dim Dt As Date
Dim blnOk As Boolean
Do
Response = InputBox("Enter the contract start date:")
If Response = "" Then Exit Sub
On Error Resume Next
Dt = DateValue(Response)
Select Case Year(Dt)
Case 2006 To 2020
blnOk = True
Case Else
End Select
Loop Until blnOk = True
Range("A1").Value = Dt
End Sub

A calendar, as suggested by Ron, is a good alternative to ensure date
entries.

HTH. Best wishes Harald

"Paige" skrev i melding
...
For the life of me, I cannot get this to work; either it keeps looping,
doesn't return the right message, or bombs out. All I'm trying to do is

ask
the user to input a date in mm/dd/yy format.
1) If they hit cancel or don't enter anything, then they should get a
message saying they must enter a response.
2) If they enter something but it is not in the mm/dd/yy format, they

should
get a message that it is not in the correct format.
3) If they enter it correctly, their response should be put into cell A1.

Can someone PLEASE help me? What I have is:
Sub GetDate()
Dim Response As String
Dim Msg As String
Msg = "Enter the contract start date, in mm/dd/yy format; then click on

'OK'."
Do
Response = InputBox(prompt:=Msg)
If Response = "" Then
MsgBox ("You must enter a response; please try again.")
End If
If Response < Format(CDate(Response), "mm/dd/yy") Then
MsgBox ("Enter a valid date in mm/dd/yy format; please try
again.")
End If
Loop
Range("A1").Value = Response
End Sub




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
Date input format Roy Gudgeon[_2_] Excel Discussion (Misc queries) 2 May 20th 10 02:05 PM
Validating Date Format exceed_novice Excel Worksheet Functions 5 February 7th 09 05:38 AM
validating input of textbox before publishing eyesonly1965 Excel Programming 4 May 7th 06 03:18 PM
validating input in textbox Jean-Pierre D via OfficeKB.com Excel Programming 1 August 15th 05 08:37 PM
Validating user input to a listbox Stuart[_5_] Excel Programming 3 September 6th 03 07:32 AM


All times are GMT +1. The time now is 10:08 PM.

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"