Formula View-Follow Up

Posted on 2012-12-27
Last Modified: 2012-12-27
This is follow up to this previous question

How can the formula components be listed in a dynamic way, assuming there are 18 components?

Question by:Rayne
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
  • 3
  • 2
LVL 26

Expert Comment

ID: 38724774
Hi, Rayne.

Please let us know the address range of the 18 components - assuming that the actual formulas are in D8 to D30 and the results are in F8 to F30

LVL 26

Accepted Solution

redmondb earned 500 total points
ID: 38724929

In the attached, I've assumed that you simply pushed the components down to make room for the extra formulas. The code is...
Option Explicit

Const XFORMULAS = "D8:D30"
Const XCOMPONENTS = "C32:C49"

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell   As Range
Dim xArray  As Variant
Dim xLoaded As Boolean
Dim xHold   As String
Dim i       As Long

If Intersect(Target, Union(Range(XFORMULAS), Range(XCOMPONENTS))) Is Nothing Then Exit Sub

Application.EnableEvents = False
Application.ScreenUpdating = False

    For Each xCell In Range(XFORMULAS)
        xHold = xCell.Formula
        If Mid(xHold, 1, 1) = "=" Then
            If Not xLoaded Then
                xArray = WorksheetFunction.Transpose(Range(XCOMPONENTS).Value)
                xLoaded = True
            End If
            For i = 1 To UBound(xArray)
                If xArray(i) <> "" Then xHold = Replace(xHold, Replace(Range("D31").Offset(i, 0).Address, "$", ""), xArray(i))
            xCell.Offset(0, 2) = "'" & xHold
            xCell.Offset(0, 2) = ""
        End If

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

Open in new window

Edit: Minor change to blank out a row's result if it has no formula.


Author Comment

ID: 38725491
Hello Brian,

Simply speaking –You Rock.  ALL Hats off to you!!
Thanks for the effort you put in here.

Thank you :)

Author Closing Comment

ID: 38725492
Perfect Solution!!
LVL 26

Expert Comment

ID: 38725553
Thanks, Rayne. Glad you're sorted!

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Microsoft Office Picture Manager was included in Office 2003, 2007, and 2010, but not in Office 2013. Users had hopes that it would be in Office 2016/Office 365, but it is not. Fortunately, the same zero-cost technique that works to install it with …
Excel can be a tricky bit of software to get your head around. Whilst you’ll be able to eventually get to grips with the basic understanding of how to get by, there are a few Excel tips that not everybody will even know about let alone know how to d…
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

730 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