Hay que borrar la imagen anterior.
En tu botón de cargar pon lo siguiente
On Error Resume Next
h2.DrawingObjects("foto1").Delete
On Error GoTo 0
y también esta línea:
.Name = "foto1"
Revisa bien en qué lugar deben ir las líneas:
'Cargar imagen
On Error Resume Next
h2.DrawingObjects("foto1").Delete
On Error GoTo 0
arch = h1.Cells(b.Row, "Q").Value
If arch <> "" Then
If Dir(arch) <> "" Then
Set fotografia = h2.Pictures.Insert(arch)
'
With fotografia
.Name = "foto1"
.ShapeRange.LockAspectRatio = msoFalse
.Top = h2.Range("B45").Top
.Left = h2.Range("B45").Left
.Width = h2.Range("B45:Q56").Width
.Height = h2.Range("B45:Q56").Height
End With
'FOTO
'eliminamos el objeto
Set fotografia = Nothing
End If
End If
MsgBox "Datos cargados"
sal u dos