The trouble with the problem as posted is that it's hard to guess exactly what you mean by empty charts and exactly how you'd like to hide up the empty charts.
I've written a bit of code below that will search through the Values of each and every Series in each embedded chart in a worksheet. It deems a chart to be empty if all the values are zero. Please note that this will still allow non-zero x-axis values (which can be found in the XValues variant array of the Series object) which my code ignores. I've also implicitly assumed that you are not using dynamic range names for your input data. Were this to be the case, empty charts would be designated as charts with no values due to your zero-sized ranges and I guess this might crash the code I've written but I'm not too sure with out testing it.
The second point is that I'm not sure what you want doing with the empty charts when found. The code I've written will just hide / unhide charts although clearly on a sheet with 182 charts you're going to be left with a few gaps if you just hide / unhide. Depending on how acceptable this is to you and how motivated you feel, you could write a macro to copy all the non-blank charts to an output chart sheet. The coding of this would be fairly tedious though as you'd have to work out the XY co-ordinate positioning of each new chart.
HTH,
Maccas
Code:
Sub HideEmptyCharts()
Dim wksCharts As Worksheet
Dim objCO As ChartObject
' Set up a variable for the worksheet containing the charts
Set wksCharts = ThisWorkbook.Sheets("Sheet1")
' Loop through every embedded chart object on the worksheet
For Each objCO In wksCharts.ChartObjects
' Make each one visible
objCO.Visible = True
' If the chart is empty make it not visible
If IsChartEmpty(objCO.Chart) Then objCO.Visible = False
Next objCO
End Sub
Private Function IsChartEmpty(chtAnalyse As Chart) As Boolean
Dim i As Integer
Dim j As Integer
Dim objSeries As Series
' Loop through all series of data within the chart
For i = 1 To chtAnalyse.SeriesCollection.Count
Set objSeries = chtAnalyse.SeriesCollection(i)
' Loop through each value of the series
For j = 1 To UBound(objSeries.Values)
' If we have a non-zero value then the chart is not deemed to be empty
If objSeries.Values(j) <> 0 Then
' Set return value and quit function
IsChartEmpty = False
Exit Function
End If
Next j
Next i
IsChartEmpty = True
End Function