+ Reply to Thread
Results 1 to 6 of 6

Adding the $ AFTER the data was collated?

  1. #1
    Registered User
    Join Date
    06-14-2004
    Posts
    75

    Adding the $ AFTER the data was collated?

    Hi all

    I have a spreadsheet which links to loads of others.

    As all spreadsheets are the same format it was fine for the first link to be 'autofilled'. Now as i want to copy down the data it obvisouly changes the cell references...

    Is there any way - short of doing it manually! - of inserting the $ for letter and number automatically?

    Many thanks

    J

  2. #2
    Valued Forum Contributor
    Join Date
    09-23-2005
    Location
    Bristol, UK
    MS-Off Ver
    2007
    Posts
    664
    Hi there,

    Not sure I'm totally understanding your problem - but it seems you're saying you want to make the cell values absolute after you've entered them. If this is the case, you can use the following bit of VBA to 'lock' everything up after you've entered it. Just select the cells and run the macro.

    Sub SetAllToAbsolute()
    Dim c As Range
    For Each cell In Selection
    If c.HasFormula Then
    c.Formula = Application.ConvertFormula(c.Formula, _
    xlA1, xlA1, xlAbsolute)
    End If
    Next
    End Sub

    HTH,

    SamuelT

  3. #3
    MartinW
    Guest

    Re: Adding the $ AFTER the data was collated?

    Hi Petitboeuf,

    There is a semi automatic way.
    Click on the cell reference in the formula bar and hit F4,
    keep hitting F4 and you will see that it cycles through
    the four options for a cell reference i.e.
    B2, $B2, B$2 and $B$2

    If you want more automated than that then I suppose
    there may be some sort of VBA solution that could be
    tailored to your particular needs but you would need
    to supply a lot more detailed information on your needs
    and post it in the programming newsgroup.

    HTH
    Martin



  4. #4
    Registered User
    Join Date
    06-14-2004
    Posts
    75
    Quote Originally Posted by SamuelT
    Hi there,

    Not sure I'm totally understanding your problem - but it seems you're saying you want to make the cell values absolute after you've entered them. If this is the case, you can use the following bit of VBA to 'lock' everything up after you've entered it. Just select the cells and run the macro.

    Sub SetAllToAbsolute()
    Dim c As Range
    For Each cell In Selection
    If c.HasFormula Then
    c.Formula = Application.ConvertFormula(c.Formula, _
    xlA1, xlA1, xlAbsolute)
    End If
    Next
    End Sub

    HTH,

    SamuelT
    SamuelT,

    Many thanks! It worked a treat!

    Now for the next challenge!

    My formula is something like "=Sheet1!a9/Sheet1!a9" which will give me a % (100% in that case).
    I want to copy/paste down the formula and in order to do so would need the formula to be:
    "=Sheet1!a9/Sheet1!$a$9"

    What would be the tweak on the code to make this happen? I tried to play with it but my VB abilities do not allow for any results

    Many thanks

  5. #5
    Registered User
    Join Date
    06-14-2004
    Posts
    75
    Quote Originally Posted by SamuelT
    Hi there,

    Not sure I'm totally understanding your problem - but it seems you're saying you want to make the cell values absolute after you've entered them. If this is the case, you can use the following bit of VBA to 'lock' everything up after you've entered it. Just select the cells and run the macro.

    Sub SetAllToAbsolute()
    Dim c As Range
    For Each c In Selection
    If c.HasFormula Then
    c.Formula = Application.ConvertFormula(c.Formula, _
    xlA1, xlA1, xlAbsolute)
    End If
    Next
    End Sub

    HTH,

    SamuelT
    SamuelT,

    Many thanks! It worked a treat!

    Now for the next challenge!

    The formula(s) I am working on are as follow:

    =IF(ISERROR('D:\[Dashboards - Accounts - SF2.xls]Dashboard - TOTAL (Inc. Bridge)'!AJ7/'D:\[Dashboards - Accounts - SF2.xls]Dashboard - TOTAL (Inc. Bridge)'!B7*100),0,'D:\[Dashboards - Accounts - SF2.xls]Dashboard - TOTAL (Inc. Bridge)'!AJ7/'D:\[Dashboards - Accounts - SF2.xls]Dashboard - TOTAL (Inc. Bridge)'!B7*100)

    When I try to apply the macro to this.... I get a #Value! error...

    Please help! I have a lot of sheets and cells to apply these formulas to!

    Many thanks

  6. #6
    Registered User
    Join Date
    01-25-2005
    Posts
    16
    Quote Originally Posted by Petitboeuf
    SamuelT,

    Many thanks! It worked a treat!

    Now for the next challenge!

    My formula is something like "=Sheet1!a9/Sheet1!a9" which will give me a % (100% in that case).
    I want to copy/paste down the formula and in order to do so would need the formula to be:
    "=Sheet1!a9/Sheet1!$a$9"

    What would be the tweak on the code to make this happen? I tried to play with it but my VB abilities do not allow for any results

    Many thanks
    try this, it worked for me:

    Sub SetPartToAbsolute()
    Dim c As Range
    Dim arSplit As Variant
    For Each c In Selection
    If c.HasFormula Then
    arSplit = Split(c.Formula, "/")
    c.Formula = arSplit(0) & "/" & Application.ConvertFormula(arSplit(1), xlA1, xlA1, xlAbsolute)
    End If
    Next
    End Sub

    If you're looking for a "Speedfill" type function that will convert your formulas from:

    A1/B1
    A2/B2
    A3/B3

    to:
    A1/$B$1
    A2/$B$1
    A3/$B$1

    Try:

    Sub SetPartToAbsolute()
    Dim c As Range
    Dim arSplit As Variant
    Dim Denom As String
    arSplit = Split(ActiveCell.Formula, "/")
    Denom = Application.ConvertFormula(arSplit(1), xlA1, xlA1, xlAbsolute)
    For Each c In Selection
    If c.HasFormula Then
    arSplit = Split(c.Formula, "/")
    c.Formula = arSplit(0) & "/" & Denom
    End If
    Next
    End Sub

    or if you're trying to fill in a selected range with absoluted formulas when you have a formula w/o absolutes in the first cell :

    Sub SetPartToAbsolute()
    Dim c As Range
    Dim arSplit As Variant
    Dim Denom As String
    ActiveCell.Copy
    ActiveSheet.Paste
    arSplit = Split(ActiveCell.Formula, "/")
    Denom = Application.ConvertFormula(arSplit(1), xlA1, xlA1, xlAbsolute)
    For Each c In Selection
    If c.HasFormula Then
    arSplit = Split(c.Formula, "/")
    c.Formula = arSplit(0) & "/" & Denom
    End If
    Next
    End Sub
    Last edited by FrankB; 07-26-2006 at 08:17 PM.

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1