[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Add additional functionality to Macro

Posted on 2011-02-17
10
Medium Priority
?
188 Views
Last Modified: 2012-05-11
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
0
Comment
Question by:daiwhyte
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
10 Comments
 
LVL 6

Expert Comment

by:Eric Zwiekhorst
ID: 34916366
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
 

Author Comment

by:daiwhyte
ID: 34916550
Eric, Ive hit a snag, Ive inserted your line and Ive getting a compile error, please see screenshot. Error
0
 
LVL 6

Accepted Solution

by:
Eric Zwiekhorst earned 750 total points
ID: 34916865
That would mean your excel version does not recognice today, try Now() instead..

kr

Eric
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:daiwhyte
ID: 34919347
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
 
LVL 4

Expert Comment

by:yuppydu
ID: 34924770
Can you attach the workbook?
0
 
LVL 4

Assisted Solution

by:yuppydu
yuppydu earned 750 total points
ID: 34924794
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
 

Author Comment

by:daiwhyte
ID: 34926870
experts.csv


Here is a sample workbook guys.
0
 
LVL 4

Expert Comment

by:yuppydu
ID: 34926941
this is a text file....
0
 

Author Comment

by:daiwhyte
ID: 34926982
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
 

Author Closing Comment

by:daiwhyte
ID: 34951259
Thanks, it helped me but didnt totally resolve problem
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
This article describes how you can use Custom Document Properties to store settings and other information in your workbook so that they will be available the next time you open the workbook.
This Micro Tutorial demonstrate the bugs in Microsoft Excel for Mac with Pivot Charts.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question