View Single Post
 
Old 06-06-2015, 02:07 AM
JohnWilson JohnWilson is offline Windows 7 64bit Office 2010 32bit
Programmer
 
Join Date: Nov 2008
Location: UK
Posts: 1,913
JohnWilson has a spectacular aura aboutJohnWilson has a spectacular aura about
Default

This is "top of head" code so treat with care. Alco it may nor work if the chart is linked to Excel.

Code:
Sub DeleteZero()
Dim m As Integer
Dim a As Variant
Dim L As Integer
Dim ocht As Chart
Dim b_val As Boolean
Dim oshp As Shape
Dim osld As Slide
For Each osld In ActivePresentation.Slides
For Each oshp In osld.Shapes
If oshp.HasChart Then
Set ocht = oshp.Chart
If ocht.HasLegend Then
For m = ocht.SeriesCollection.Count To 1 Step -1
    a = ocht.SeriesCollection(m).Values
    For L = 1 To ocht.SeriesCollection(m).Points.Count
        If a(L) <> 0 Then b_val = True
    Next L
   If Not b_val Then ocht.Legend.LegendEntries(m).Delete
   b_val = False
Next m
End If 'legend
End If ' chart
Next oshp
Next osld
End Sub
__________________
Microsoft PowerPoint MVP 2007-2023
Free Advanced PowerPoint Tips and Tutorials
Reply With Quote