There are many differing thoughts on DoEvents, but it does work in instances like this, but for reliable updating I had to put it in 4 times!
I changed the order of the code to update the chart before the wait command:
Private Sub CommandButton1_Click() Dim x As Long, dummy As Long
For x = 0 To 5
Range("B11").Value = x
ActiveSheet.ChartObjects("Chart 3").Chart.Refresh
DoEvents: DoEvents: DoEvents: DoEvents
Application.Wait (Now + TimeValue("00:00:01"))
Range("B11").Value = x + 1
Next x
End Sub
There are probably better ways to do it, but I can't help there, sorry.