Add additional functionality to Macro

Hi,

I have a macro (created on this site!) which transforms data held in the P Column, I would like to add another transformation to the data in Column T. In this column, we currently have start date of contract (dd/mm/yyyy format), I would like to transform this data to how long contract has been live. I already have a formula to work this out but need to add it to the macro.

=DATEDIF(T2,TODAY(),"y")&"/"&DATEDIF(T2,TODAY(),"ym")
Works out duration of contract.

Here is the existing macro

Sub Button1_Click()
Dim sName As String, blankrow As Integer, rownum As Integer
Dim rng As Range, cell As Range
sName = ActiveSheet.Name
blankrow = 0
rownum = 1
If sName = "" Then Exit Sub

'Set rng = Range(Range("P1"), Cells(Rows.Count, 1).End(xlDown))
While blankrow < 10
Set cell = Range(("P" & rownum))
 If cell.Text = "Full Time Employment" Then
    cell.Value2 = "Employed FT"
 ElseIf cell.Text = "Part Time Employment" Then
    cell.Value2 = "Employed PT"
 ElseIf cell.Text = "Temporary or Contract" Then
    cell.Value2 = "Self Employed"
 ElseIf cell.Text = "" Then
    blankrow = blankrow + 1
 End If
 rownum = rownum + 1
Wend

End Sub


Thanks
daiwhyteAsked:
Who is Participating?
 
Eric ZwiekhorstConnect With a Mentor SAP Business ConsultantCommented:
That would mean your excel version does not recognice today, try Now() instead..

kr

Eric
0
 
Eric ZwiekhorstSAP Business ConsultantCommented:
Dear daiwhite, try this
 cell(rownum, 20) = datedif(cell(rownum, 20), today(), "y") & "/" & datedif(cell(rownum, 20), today(), "ym")

column 20 is T
so in this line the cell at column T is replaced with the duration.. If you would like duration in a other column change the cell(rownum, 20) = to the wanted column number


kind regards

Eric
0
 
daiwhyteAuthor Commented:
Eric, Ive hit a snag, Ive inserted your line and Ive getting a compile error, please see screenshot. Error
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
daiwhyteAuthor Commented:
Hi Eric, kk, inserted this line

cell(rownum, 20) = datedif(cell(rownum, 20), Now(), "y") & "/" & datedif(cell(rownum, 20), Now(), "ym")

It now says datedif is not defined as a sub or function and it highlights datedif

Here is the latest piece of code.


Dim sName As String, blankrow As Integer, rownum As Integer
Dim rng As Range, cell As Range
sName = ActiveSheet.Name
blankrow = 0
rownum = 1
If sName = "" Then Exit Sub

'Set rng = Range(Range("P1"), Cells(Rows.Count, 1).End(xlDown))
While blankrow < 10
Set cell = Range(("P" & rownum))
 If cell.Text = "Full Time Employment" Then
    cell.Value2 = "Employed FT"
 ElseIf cell.Text = "Part Time Employment" Then
    cell.Value2 = "Employed PT"
 ElseIf cell.Text = "Temporary or Contract" Then
    cell.Value2 = "Self Employed"
 ElseIf cell.Text = "" Then
    blankrow = blankrow + 1
cell(rownum, 20) = datedif(cell(rownum, 20), Now(), "y") & "/" & datedif(cell(rownum, 20), Now(), "ym")
 End If
 rownum = rownum + 1
Wend

End Sub
0
 
yuppyduCommented:
Can you attach the workbook?
0
 
yuppyduConnect With a Mentor Commented:
First of all is DateDiff (2 f) and not datedif, and the syntax is: DateDiff(Interval, date1, date2)
Intervals are:
yyyy = year
q = quarter
m = month
d = day

It would be helpful to, as I said in previous post, to have the workbook
0
 
daiwhyteAuthor Commented:
experts.csv


Here is a sample workbook guys.
0
 
yuppyduCommented:
this is a text file....
0
 
daiwhyteAuthor Commented:
Yes, have the macro in a spreadsheet which is open in the background. When Im viewing the csv file, I press alt+f8 for the vb editor and I run the macro from there. The first part of the macro works on the Employment status its just the second part where it works out time in job (column T)

0
 
daiwhyteAuthor Commented:
Thanks, it helped me but didnt totally resolve problem
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.