View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
JE McGimpsey JE McGimpsey is offline
external usenet poster
 
Posts: 4,624
Default Trouble formatting a date variable to contain a time value

by dividing by 2400, you're effectively using hours and centihours
(hundredths of hours) rather than hours and minutes.

One alternative:

Dim MyTime As Date
MyTime = TimeValue(Format(Application.InputBox( _
Prompt:="Enter Time", _
Title:="Time", _
Default:=Format(Time, "hhmm"), _
Type:=1), _
"00\:00"))



In article ,
Arch Stanton wrote:

I want my user to enter a time into an input box and store the value in
a date variable. Here's my code:

Dim MyTime As Date
MyTime = InputBox("Enter Time", "Time", Format(Time, "hhmm")) / 2400

I have the "/ 2400" on the end because that forces the value entered to
be a time; without that, the value my user enters becomes a date.

The trouble is that the code above returns a value for minutes that's
three fifths of the correct value. It gets the hour correct; for
example, if my user enters "1500", the value is stored correctly. But if
my user enters "1510", the value stored is 1506. In fact, whatever
number of minutes my user enters, the value stored is 3/5 of the correct
value; it sees hours as only 36 minutes long.

Can someone tell me where I've made my mistake? Thanks.

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet
News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+
Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----