In the if else part there is reference to "chart 3". [HIGHLIGHT]this was created when I recorded the macro and now when I run it it has no idea what "chart 3" is.[/HIGHLIGHT] Like I said I tried naming using the activechart.name = "name" but it didn't help so I took that out.
If you're talking about the same macro, it's going to create a new chart each time you run it. Therefore, you cannot use static names to refer to said chart.
If you're wanting to refer to previous charts... say you run the macro today, create Chart1, and tomorrow you run again, it'll create Chart2.. and you want to reference Chart1, then you need a way to reference said chart.
The best way of doing this would be to give meaningful names to begin with. If nothing, you could give the date associated with the day when the chart was made.
Or if there is no meaninful way of naming the chart by department, creator, date, or whatever, then perhaps you should come with a naming scheme of your own. Then, have a worksheet where you store the names of each chart, date created, who created, whatever info you might need/want, and then if the code needs to reference a particular previous chart, you can find the name of that chart (via code) in the worksheet range which stores the list of chart names.
I may be way off, but it sounds to me like this is a workbook used on a regular basis, not just creating a new workbook, and being done with it.