How about this.
Option Explicit
Sub Button4_Click()
Dim Cel As Range
Dim WS As Worksheet
Dim ConstantRange As Range
Dim FormulaRange As Range
Dim Shp As Shape
Dim Hidden As Worksheet
Set WS = Sheets("Chart")
Set Hidden = Sheets("Hidden")
On Error Resume Next
Set ConstantRange = WS.UsedRange.SpecialCells(xlCellTypeConstants, 23)
Set FormulaRange = WS.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
On Error GoTo 0
If Not ConstantRange Is Nothing Then
For Each Cel In ConstantRange
Hidden.Shapes("Picture 1").Copy
WS.Paste
Set Shp = WS.Shapes(WS.Shapes.Count)
Shp.Name = "EmpIcon: " & Shp.Name
Shp.Top = Cel.Top
Shp.Left = Cel.Left + Cel.Width / 2 - Shp.Width / 2
Next Cel
End If
If Not FormulaRange Is Nothing Then
For Each Cel In FormulaRange
Hidden.Shapes("Picture 1").Copy
WS.Paste
Set Shp = WS.Shapes(WS.Shapes.Count)
Shp.Name = "EmpIcon: " & Shp.Name
Shp.Top = Cel.Top
Shp.Left = Cel.Left + Cel.Width / 2 - Shp.Width / 2
Next Cel
End If
Set ConstantRange = Nothing
Set FormulaRange = Nothing
Set WS = Nothing
Set Shp = Nothing
End Sub
Sub DelPics()
Dim i As Long
Dim WS As Worksheet
Set WS = Sheets("Chart")
For i = WS.Shapes.Count To 1 Step -1
If Left(WS.Shapes(i).Name, 9) = "EmpIcon: " Then
WS.Shapes(i).Delete
End If
Next i
End Sub