Solved

VBA to change formula in data label

Posted on 2013-12-17
3
1,663 Views
Last Modified: 2016-06-14
Hello,

I used Rob Bovey's xy chart labeler to label a dataseries in a scatterplot. Each datalabel refers to a cell in the worksheet, such as "=BE_Cat!$D$30", so the data label contains whatever is in cell d30, d31 etc.

Unfortunately, I (or Excel) screwed up and have many, many files and charts where the label formula refers to the wrong sheet, e.g. "=CV_Cat!$D$30" instead of "=BE_Cat!$D$30".

To fix this, I'm looking for a macro to select a certain dataseries in a chart (Let's call it "CV"), and then circle through all the data labels in the series to change "CV" to "BE" in the label formula, i.e. from  "=CV_Cat!$D$30" to "=BE_Cat!$D$30", "=CV_Cat!$D$31" to "=BE_Cat!$D$31", and so on.

Thank you!!!!
0
Comment
Question by:ejortberg
[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
3 Comments
 
LVL 17

Accepted Solution

by:
andrewssd3 earned 400 total points
ID: 39725908
This will work for the active chart (i.e. the clicked-on selected chart):
Public Sub ReformatLabels()

    Dim c As Chart
    Dim s As Series
    Dim p As Point
    
    Const FROM_STR As String = "CV"
    Const TO_STR As String = "BE"
    
    Set c = ActiveChart

    Set s = Nothing
    On Error Resume Next
    Set s = c.SeriesCollection("CV")
    On Error GoTo 0
    
    If Not s Is Nothing Then
    
        For Each p In s.Points
            If p.HasDataLabel Then
                p.DataLabel.Formula = Replace(p.DataLabel.Formula, FROM_STR, TO_STR)
            End If
        Next p
    
    End If
End Sub

Open in new window

0
 

Author Closing Comment

by:ejortberg
ID: 39727180
Fantastic - you saved my holiday break!
0
 
LVL 1

Expert Comment

by:Jon_Peltier
ID: 41652560
You may include a check for an actual formula

If Left$(p.DataLabel.Formula, 1) = "=" Then

Open in new window


since .Formula will return the data label's .Text if it isn't a "real" formula.
0

Featured Post

Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

Question has a verified solution.

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

Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
I was prompted to write this article after the recent World-Wide Ransomware outbreak. For years now, System Administrators around the world have used the excuse of "Waiting a Bit" before applying Security Patch Updates. This type of reasoning to me …
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

707 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