You could substitute the 0's with #N/A but that will still produce blank placeholders in your chart. It would seem that you need to squeeze the non-zero values out of the value list and chart those. If your list of numbers is in A2:A15, put this array formula into B2,
=INDEX($A$2:$A$15,MATCH(0,IF($A$2:$A$15<>0,COUNTIF(B$1:B1,$A$2:$A$15),1),0))
Finalize it with Ctrl+Shift+Enter rather than simply Enter and fill down to B15.
Next, select just B2 and open the Formulas, Name Manager. Create a new name called something like My_Chart_Values and use the following for the Refers to:
=OFFSET(Sheet1!$B$2,0,0,COUNT(Sheet1!$B$2:$B$99),1)
This will dynamically set the My_Chart_Values named range according to how many non-#N/A values are in B2:B15.
Now go into your chart and use Select Data on your columns. Since a chart can be moved just about anywhere, you will have to include the workbook name in the Series values: definaition. My example was Book11.xlsm so i used,
=Book11.xlsm!My_Chart_Values
Click OK and you should have a dynamically generated column chart.