ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Preserving date format in VB (https://www.excelbanter.com/excel-programming/394874-preserving-date-format-vbulletin.html)

Jimbob

Preserving date format in VB
 
I have some code which checks the entry in a cell is a date and prompts the
user for a date if it's not:

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = ADate
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"

The trouble is, if as the user, I input 1/8/07 (in place of "1st Aug 07"),
it returns the US format. ie 8 January 2007.
Can anyone help to correct this, please?

Apologies if you recognise any of the code - it is plagiarised from this site.
Thanks

Bob Phillips

Preserving date format in VB
 
Try this

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = CDate(ADate)
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"


--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"Jimbob" wrote in message
...
I have some code which checks the entry in a cell is a date and prompts the
user for a date if it's not:

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = ADate
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"

The trouble is, if as the user, I input 1/8/07 (in place of "1st Aug 07"),
it returns the US format. ie 8 January 2007.
Can anyone help to correct this, please?

Apologies if you recognise any of the code - it is plagiarised from this
site.
Thanks




Vergel Adriano

Preserving date format in VB
 
Jimbob,

try replacing this line:

ActiveCell.Value = ADate

with this:

ActiveCell.Value = CDate(Format(ADate, "dd/mm/yyyy"))


--
Hope that helps.

Vergel Adriano


"Jimbob" wrote:

I have some code which checks the entry in a cell is a date and prompts the
user for a date if it's not:

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = ADate
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"

The trouble is, if as the user, I input 1/8/07 (in place of "1st Aug 07"),
it returns the US format. ie 8 January 2007.
Can anyone help to correct this, please?

Apologies if you recognise any of the code - it is plagiarised from this site.
Thanks


Jimbob

Preserving date format in VB
 
Bob, What a star you are!
Fabulous - works a treat.

Thank you so much

"Bob Phillips" wrote:

Try this

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = CDate(ADate)
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"


--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"Jimbob" wrote in message
...
I have some code which checks the entry in a cell is a date and prompts the
user for a date if it's not:

Dim ADate
Dim Message, Title, Default
Message = "Enter the date as d/m/yy"
Title = "Date Format"
Default = "25/12/07"
Worksheets("Summary").Range("E4").Activate
ActiveCell.NumberFormat = "d/m/yy"
ADate = ActiveCell
Do Until IsDate(ADate)
' Display message, title, and default value.
ADate = InputBox(Message, Title, Default)
ActiveCell.Value = ADate
Loop
ActiveCell.NumberFormat = "d mmmm yyyy"

The trouble is, if as the user, I input 1/8/07 (in place of "1st Aug 07"),
it returns the US format. ie 8 January 2007.
Can anyone help to correct this, please?

Apologies if you recognise any of the code - it is plagiarised from this
site.
Thanks






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

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