Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
I'm trying to write a VBA macro to take the difference between two times
input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Post up the code so we can see what you are doing.
-- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Its definately a work in progress, but here's what I have so far:
Sub testjs() Dim startTime As String Dim endTime As String Dim totHours As String startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) totHours = CDate(endTime) - CDate(startTime) ActiveCell.Value = totHours End Sub "Bob Phillips" wrote: Post up the code so we can see what you are doing. -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Sub testjs()
Dim startTime As Date Dim endTime As Date Dim totHours As Date startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) * 24 endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) * 24 totHours = endTime - startTime ActiveCell.Value = totHours ActiveCell.NumberFormat = "00.00" End Sub StartTime entered as 9:0 EndTime entered as 17:30 Is this OK? "John Schneider" wrote: Its definately a work in progress, but here's what I have so far: Sub testjs() Dim startTime As String Dim endTime As String Dim totHours As String startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) totHours = CDate(endTime) - CDate(startTime) ActiveCell.Value = totHours End Sub "Bob Phillips" wrote: Post up the code so we can see what you are doing. -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Billy,
That works perfect, but I don't understand why the time input (i.e. 9:00) has to be multiplied by 24. Thanks again!!! "Billy Liddel" wrote: Sub testjs() Dim startTime As Date Dim endTime As Date Dim totHours As Date startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) * 24 endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) * 24 totHours = endTime - startTime ActiveCell.Value = totHours ActiveCell.NumberFormat = "00.00" End Sub StartTime entered as 9:0 EndTime entered as 17:30 Is this OK? "John Schneider" wrote: Its definately a work in progress, but here's what I have so far: Sub testjs() Dim startTime As String Dim endTime As String Dim totHours As String startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) totHours = CDate(endTime) - CDate(startTime) ActiveCell.Value = totHours End Sub "Bob Phillips" wrote: Post up the code so we can see what you are doing. -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
John
Excel calculates dates as numbers, normally counting from 1/1/1900. Time is calculated as fractions of a day. so 9:00 is 9/24 of a day. Bear this in mind when making any calculations with time. Peter "John Schneider" wrote: Billy, That works perfect, but I don't understand why the time input (i.e. 9:00) has to be multiplied by 24. Thanks again!!! "Billy Liddel" wrote: Sub testjs() Dim startTime As Date Dim endTime As Date Dim totHours As Date startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) * 24 endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) * 24 totHours = endTime - startTime ActiveCell.Value = totHours ActiveCell.NumberFormat = "00.00" End Sub StartTime entered as 9:0 EndTime entered as 17:30 Is this OK? "John Schneider" wrote: Its definately a work in progress, but here's what I have so far: Sub testjs() Dim startTime As String Dim endTime As String Dim totHours As String startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) totHours = CDate(endTime) - CDate(startTime) ActiveCell.Value = totHours End Sub "Bob Phillips" wrote: Post up the code so we can see what you are doing. -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Great explanation, and thanks again for the help!!!!
"Billy Liddel" wrote: John Excel calculates dates as numbers, normally counting from 1/1/1900. Time is calculated as fractions of a day. so 9:00 is 9/24 of a day. Bear this in mind when making any calculations with time. Peter "John Schneider" wrote: Billy, That works perfect, but I don't understand why the time input (i.e. 9:00) has to be multiplied by 24. Thanks again!!! "Billy Liddel" wrote: Sub testjs() Dim startTime As Date Dim endTime As Date Dim totHours As Date startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) * 24 endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) * 24 totHours = endTime - startTime ActiveCell.Value = totHours ActiveCell.NumberFormat = "00.00" End Sub StartTime entered as 9:0 EndTime entered as 17:30 Is this OK? "John Schneider" wrote: Its definately a work in progress, but here's what I have so far: Sub testjs() Dim startTime As String Dim endTime As String Dim totHours As String startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) totHours = CDate(endTime) - CDate(startTime) ActiveCell.Value = totHours End Sub "Bob Phillips" wrote: Post up the code so we can see what you are doing. -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "John Schneider" wrote in message ... I'm trying to write a VBA macro to take the difference between two times input by the user, calculate the difference, and put that value in the cell. The first input box prompts for the start time (i.e. 9:00AM) and the second prompts for the end time (i.e. 5:30PM). I've searched through this newsgroup and done Google searches, but something just isn't sinking in. I need the value to come out as a decimal value. With the 9:00 - 5:30 example, the cell should show 8.5, but I keep getting -0.15. No doubt I'm missing something obvious! Thanks, John |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
One more thing I can't figure out. The user inputs a start time, end time,
and how long for lunch. Something is wrong with the way I'm trying to calculate this. The start and end times are absolute times (i.e. 8:30 am and 5:30 pm), but I need the "how long for lunch" to be just the number of minutes, i.e. 45, 60, etc. How do I get this to work? Here's my code: Dim startTime As Date Dim endTime As Date Dim Lunch As Date Dim totHours As Date startTime = Application.InputBox("Enter Start Time", "Calculate Hours", , , , , , 1) endTime = Application.InputBox("Enter End Time", "Calculate Hours", , , , , , 1) Lunch = Application.InputBox("How Long For Lunch?", "Calculate Hours", , , , , , 1) totHours = ((endTime - startTime) * 24) - (Lunch * 24) ActiveCell.Value = totHours ActiveCell.NumberFormat = "#0.0" "Billy Liddel" wrote: John Excel calculates dates as numbers, normally counting from 1/1/1900. Time is calculated as fractions of a day. so 9:00 is 9/24 of a day. Bear this in mind when making any calculations with time. Peter |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
Time Difference in VBA Macro
Divide the number of minutes by 1440 (24*60) to get a time serial
equivalent to the number of minutes. Cliff Edwards |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
subtract the time difference from another time difference | Excel Discussion (Misc queries) | |||
Comparing 2 files on date/time stamp, and based time difference do a subroutine | Excel Programming | |||
Daylight Saving Time (DST) and calculating time difference. | Excel Programming | |||
Time difference calculations, daylight savings time, Excel | Excel Discussion (Misc queries) | |||
Help with difference in time macro | Excel Programming |