The following solution uses the worksheet change event to automatically add the appropriate number of oval shapes, whenever the value in G4 is changed, and the value is a number greater than 0. When the code is executed, it does the following...
1) Deletes any and all existing oval shapes.
2) Places the newly created oval shapes in Column I, starting at I4.
3) Sets their width and height at their default value, which is 72 points, respectively.
Here's the code, which needs to be placed in the code module for the worksheet (right-click the sheet tab, and select View Code). Note that you can make changes as desired.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$G$4" Then Exit Sub
Dim ovalShape As Oval
Dim leftPos As Single
Dim topPos As Single
Dim gap As Long
Dim i As Long
leftPos = Target.Offset(, 2).Left
topPos = Target.Top
gap = 20 'change the gap between shapes as desired
If Len(Target) > 0 Then
If IsNumeric(Target) Then
For i = 1 To Target.Value
Set ovalShape = Me.Ovals.Add(Left:=leftPos, Top:=topPos, Width:=72, Height:=72)
topPos = topPos + ovalShape.Height + gap