Well I figured out a time saving method. I hope I'm not writing this only to the white sheet. Give me some feedback if you are actually reading this.
As far as I understand whenever excel renders a chart it goes into the memory and when it is set visible again (after being hidden), the process is 10x faster. In my case the first rendering of a chart is 2.7s long, but the second only takes 0.3s. 2+ seconds feels like hell when you got used to fast workflow.
The somehow solution is going through (set visible) all the charts in the begining to load them into the memory. This is much faster then multiplying the number of charts with the measured 2.7s. 50 charts load in 28s and not 135s. The blinking charts can be frustrating but with a simple white shape as a temporary cover that's solved too.
The program:
ActiveSheet.Shapes("COVER").Visible = True
ActiveSheet.Shapes("COVER").TextFrame.Characters.Text = "Loading charts (0/50)"
For counter = 1 To 50
chart_name = Sheets("Data").Cells(counter , 1)
ActiveSheet.ChartObjects(chart_name).Visible = True
DoEvents
ActiveSheet.ChartObjects(chart_name).Visible = False
ActiveSheet.Shapes("COVER").TextFrame.Characters.Text = "Loading charts (" & counter & "/50)"
Next counter
ActiveSheet.Shapes("COVER").Visible = False
Success, yaay.