Podrían haber otras maneras de hacer lo que dices y a mi se me ocurre hacerlo de la siguiente manera acortando un poco el código que va en el evento change de la hoja activa:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Shapes.Range(Array("Oval 1")).TextFrame2.TextRange.Text = ActiveSheet.Range("C2")
Range("C3").Select
End Sub
Y en el modulo de la siguiente manera, poniendo una pausa en la ejecución de las macros. Para ver en la forma (elipse) el dato de la celda C3, para después borrar y posicionarse en la celda C2
Sub datos_celda()
ActiveSheet.Shapes.Range(Array("Oval 1")).TextFrame2.TextRange.Text = ActiveSheet.Range("C3")
Application.Wait (Now + TimeValue("00:00:02")) 'Pausa de dos segundos
Call datos_celda2
End Sub
Sub datos_celda2()
Application.Wait (Now + TimeValue("00:00:02")) 'Pausa de dos segundos
ActiveSheet.Shapes.Range(Array("Oval 1")).TextFrame2.TextRange.Text = ""
Range("C2").Select
End Sub
Asignando siempre la macro datos_celda a la forma(elipse1).
Espero te sirva y si tienes mas dudas me puedes escribir a mi correo [email protected]