Hay muchas variantes a la hora de insertar una imagen. No dejas muchos detalles así que respondo al punto esencial: según valor en celda.
En el 1er ej, se ejecuta y evalua el contenido de A2 de la hoja activa. Esta macro se coloca en un módulo o dentro de otro proceso.
Sub insertaImagen()
'x Elsamatilde
If Range("A2") = 3 Then
'indico la ruta de la imagen
ruta = "C:\Documents and Settings\All Users\Documentos\captura1.jpg"
ActiveSheet.Pictures.Insert (ruta)
End If
End Sub
Este otro ejemplo, se ejecuta al cambiar el valor de una celda. Se coloca en el objeto HOJA donde se hará la evaluación:
Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se evalúa el cambio en celda A2
If Target.Address <> "$A$2" Then Exit Sub
If Target.Value = 3 Then
'indico la ruta de la imagen
ruta = "C:\Documents and Settings\All Users\Documentos\captura1.jpg"
ActiveSheet.Pictures.Insert (ruta)
End If
End Sub
En la demo de mi Guía Temática N° 5 podrás encontrar otros ejemplos.
Sdos
Elsa