Solved

Creating custom data labels in a chartseries

Posted on 2013-01-23
3
365 Views
Last Modified: 2013-01-24
Please take a look at the attached workbook. I need to get my chart values from Row 4, but I want to get my data labels from Row 5.

How do I do that? Assuming thatI can have a custom label other than series, category or value.

Thanks,
John
Custom-Data-Labels.xlsx
0
Comment
Question by:gabrielPennyback
3 Comments
 
LVL 50

Accepted Solution

by:
Rgonzo1971 earned 250 total points
ID: 38813388
Hi,

Maybe you should use this

http://appspro.com/Utilities/ChartLabeler.htm

regards
0
 
LVL 18

Assisted Solution

by:krishnakrkc
krishnakrkc earned 250 total points
ID: 38813512
Hi

Put this code in the sheet module. (Right click on tab name > view code > paste the code there in the white pane)

I assume that the sheet has some formulas. The code will fire each time when a calculation happens in the sheet.

Option Explicit

Private Sub Worksheet_Calculate()
    
    Dim rngLabel    As Range
    Dim rngValue    As Range
    Dim i           As Long
    
    Set rngValue = Range("B9:P9")       '<< adjust to suit
    Set rngLabel = Range("B10:P10")     '<< adjust to suit
    
    Application.ScreenUpdating = 0
    For i = 1 To rngValue.Columns.Count
        With rngValue.Cells(1, i)
            .NumberFormat = """Wk """ & .Value & vbLf & """ " & Right(rngLabel.Cells(1, i).Value, 4) & """"
        End With
    Next
    Application.ScreenUpdating = 1
    
End Sub

Open in new window


Kris
0
 
LVL 1

Author Closing Comment

by:gabrielPennyback
ID: 38817055
Thank you for your solutions. They didn't quite address my actual situation but the two of you got me started in the right direction and I was able to come with a good solution. For what it's worth, this is what I ended up with.

Sub GetDataLabels()
Dim i As Long, Ln As Range
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.SetElement (msoElementPrimaryValueAxisShow)
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(1).Values = "='Weeks Done'!$X$4:$AJ$4"
For i = 1 To 13
Set Ln = Sheets("Weeks Done").Cells(6, i + 23)
    ActiveChart.SeriesCollection(1).Points(i).HasDataLabel = True
    ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text = _
        Left(Sheets("Weeks Done").Cells(5, i + 23), Ln) & vbLf & _
        Right(Sheets("Weeks Done").Cells(5, i + 23), Ln)
    ActiveChart.SeriesCollection(1).Points(i).DataLabel.Position = xlLabelPositionInsideEnd
Next i
    With ActiveChart.Axes(xlValue)
        .MinimumScale = [Lo]
        .MaximumScale = [Hi]
        .MinorUnitIsAuto = True     '.MajorUnit = [XAxisMajor]
    End With
ActiveChart.Axes(xlValue, xlPrimary).Delete
[A1].Select
End Sub

Thanks,
John
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

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

Introduction While answering a recent question (http:/Q_27311462.html), I created an alternative function to the Excel Concatenate() function that you might find useful.  I tested several solutions and share the results in this article as well as t…
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.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
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…

713 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