Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Rob
 
Posts: n/a
Default

Hi,

Is there a way to put Gord formula into a VBA function and say name it
YrsMthsDays whereby the formula would be =YrsMthsDays(A1,A2)

Thanks, Rob

"Gord Dibben" <gorddibbATshawDOTca wrote in message
...
Mike

Your result would be 9 years and 23 days which Excel rounds to 9 years and
1
month.

What would you like to have displayed?

9 years and 23/31 months?

This formula will give you 9 years, 0 months, 23 days

=DATEDIF(A1,A2,"y") &" years, "& DATEDIF(A1,A2,"ym")&" months, "&
DATEDIF(A1,A2,"md") & " days"

Where A1 holds earliest date.

Gord Dibben Excel MVP

On Sat, 27 Nov 2004 10:19:02 -0800, "Mike New" <Mike
wrote:

I am trying to calculate chronological age - years and complete months -
for
school report purposes. I can get Years and months but not accurately -
say
for a date of birth 22nd November 1995 and a date of the 15th December - I
get 9 years and 1 month.




  #2   Report Post  
Dave Peterson
 
Posts: n/a
Default

It would actually quicker to keep the formula in the worksheet. And if you keep
the formula handy (in a text file or sample workbook or just a link to Chip's
site), it wouldn't be too hard to copy it into your worksheet.

But if you want...

Option Explicit
Function YrsMthsDays(rng1 As Range, rng2 As Range) As Variant

Dim iCtr As Long
Dim myVals(0 To 2) As Long
Dim myIntervals As Variant
Dim myStrs As Variant
Dim myOutput As String

myIntervals = Array("y", "ym", "md")
myStrs = Array(" years, ", " months, ", " days")

myOutput = ""
For iCtr = LBound(myVals) To UBound(myVals)
myVals(iCtr) = Application.Evaluate("datedif(" _
& rng1.Address(external:=True) _
& "," & rng2.Address(external:=True) _
& ",""" & myIntervals(iCtr) & """)")
myOutput = myOutput & myVals(iCtr) & myStrs(iCtr)
Next iCtr

YrsMthsDays = myOutput

End Function

Rob wrote:

Hi,

Is there a way to put Gord formula into a VBA function and say name it
YrsMthsDays whereby the formula would be =YrsMthsDays(A1,A2)

Thanks, Rob

"Gord Dibben" <gorddibbATshawDOTca wrote in message
...
Mike

Your result would be 9 years and 23 days which Excel rounds to 9 years and
1
month.

What would you like to have displayed?

9 years and 23/31 months?

This formula will give you 9 years, 0 months, 23 days

=DATEDIF(A1,A2,"y") &" years, "& DATEDIF(A1,A2,"ym")&" months, "&
DATEDIF(A1,A2,"md") & " days"

Where A1 holds earliest date.

Gord Dibben Excel MVP

On Sat, 27 Nov 2004 10:19:02 -0800, "Mike New" <Mike
wrote:

I am trying to calculate chronological age - years and complete months -
for
school report purposes. I can get Years and months but not accurately -
say
for a date of birth 22nd November 1995 and a date of the 15th December - I
get 9 years and 1 month.



--

Dave Peterson
  #3   Report Post  
Rob
 
Posts: n/a
Default

Thanks Dave, just what I needed, helps with my learning cycle! Rob

"Dave Peterson" wrote in message
...
It would actually quicker to keep the formula in the worksheet. And if
you keep
the formula handy (in a text file or sample workbook or just a link to
Chip's
site), it wouldn't be too hard to copy it into your worksheet.

But if you want...

Option Explicit
Function YrsMthsDays(rng1 As Range, rng2 As Range) As Variant

Dim iCtr As Long
Dim myVals(0 To 2) As Long
Dim myIntervals As Variant
Dim myStrs As Variant
Dim myOutput As String

myIntervals = Array("y", "ym", "md")
myStrs = Array(" years, ", " months, ", " days")

myOutput = ""
For iCtr = LBound(myVals) To UBound(myVals)
myVals(iCtr) = Application.Evaluate("datedif(" _
& rng1.Address(external:=True) _
& "," & rng2.Address(external:=True) _
& ",""" & myIntervals(iCtr) & """)")
myOutput = myOutput & myVals(iCtr) & myStrs(iCtr)
Next iCtr

YrsMthsDays = myOutput

End Function

Rob wrote:

Hi,

Is there a way to put Gord formula into a VBA function and say name it
YrsMthsDays whereby the formula would be =YrsMthsDays(A1,A2)

Thanks, Rob

"Gord Dibben" <gorddibbATshawDOTca wrote in message
...
Mike

Your result would be 9 years and 23 days which Excel rounds to 9 years
and
1
month.

What would you like to have displayed?

9 years and 23/31 months?

This formula will give you 9 years, 0 months, 23 days

=DATEDIF(A1,A2,"y") &" years, "& DATEDIF(A1,A2,"ym")&" months, "&
DATEDIF(A1,A2,"md") & " days"

Where A1 holds earliest date.

Gord Dibben Excel MVP

On Sat, 27 Nov 2004 10:19:02 -0800, "Mike New" <Mike
wrote:

I am trying to calculate chronological age - years and complete
months -
for
school report purposes. I can get Years and months but not
accurately -
say
for a date of birth 22nd November 1995 and a date of the 15th
December - I
get 9 years and 1 month.


--

Dave Peterson



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
Creating GIFs in Excel 2003 for use in Dreamweaver Lou Crandall Charts and Charting in Excel 2 January 2nd 05 07:58 PM
Charting Data from Excel DavidM Charts and Charting in Excel 4 December 30th 04 02:31 PM
How does Excel 2003 calculate trendlines with respect to axes? BeefmanSteve Charts and Charting in Excel 2 December 22nd 04 10:53 PM
how do i calculate a chart gradient in excel? Nay Charts and Charting in Excel 1 December 14th 04 04:54 PM
Staring Excel Problem Everton Excel Discussion (Misc queries) 1 November 26th 04 09:22 PM


All times are GMT +1. The time now is 09:51 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"