Perdona por el retraso, no es posible que lo haga automáticamente, o por lo menos no lo descubro, el motivo principal es que una celda no puede tener formato de imagen, de ser así bastaría con crear una función que nos devolviera el valor(imagen) Después de muchas pruebas con macros y funciones, no consigo que la foto se active sola, ni que ningún activex recoja la foto en su sitio ademas de tener que activarlo manualmente para que ejecute la macro después de cuatro días enredando (estoy aprendiendo vb y me engancha), he decidido pasar de las funciones y crear una serie de macros que se activen a través de la propia foto Haz lo siguiente: Celda a1, recoge un valor pues o neg Inserta una imagen, sin importarte donde ni su tamaño selecciona la imagen y en la barra de fórmulas (a la izquierda), selecciona el nombre que se le ha asignado a la imagen y cambialo por el de foto activa el editor de vb y copia el siguiente código _____________________________________________________________________ Sub imagen() ' ' imagen Macro ' Macro grabada el 14/06/2003 por jperg a = Range("A1") If a >= 0 Then fotopos Else fotoneg End If End Sub Sub borrar() ' ' borrar Macro ' Macro grabada el 14/06/2003 por jperg ActiveSheet.Shapes("foto").Select Selection.Delete Range("A2").Select End Sub Sub fotopos() ' ' fotopos Macro ' Macro grabada el 14/06/2003 por jperg borrar Range("A2").Select ActiveSheet.Pictures.Insert("D:\caratulas\Bob_Dylan_-_Street_Legal-front.jpeg") _ .Select formato End Sub Sub fotoneg() ' ' fotoneg Macro ' Macro grabada el 14/06/2003 por jperg borrar Range("A2").Select ActiveSheet.Pictures.Insert("D:\caratulas\Bob_Dylan_-_Street_Legal-back.jpeg") _ .Select formato End Sub Sub formato() ' ' formato Macro ' Macro grabada el 14/06/2003 por jperg Selection.ShapeRange.LockAspectRatio = msoFalse Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Height = 57 Selection.ShapeRange.Width = 58.5 Selection.Name = "foto" asignar Range("A1").Select End Sub Sub asignar() ' ' asignar Macro ' Macro grabada el 15/06/2003 por jperg ' ActiveSheet.Shapes("foto").Select Selection.OnAction = "imagen" End Sub _________________________________________________________________ Selecciona la imagen y con el menu contextual - asignar macro - elige imagen(1) Funcionamiento: Se introduce un valor en la celda a1 y posteriormente se ejecuta la macro imagen(dedo encima de la foto) y esta evalúa el valor de la celda a1- si es positivo va a la macro fotopos, si el valor de la celda es negativo va a la macro fotoneg, (modifica el fichero en el editor de vb para ver un fichero que tengas en alguna unidad) La macro fotopos y la macro fotoneg comienzan por ir a la macro borrar para quitar la foto anterior y después pone la foto nueva, y por ultimo van a la macro formato para decirle el tamaño definitivo y su ubicación en la celda a2, también he creado una macro que le asigna automáticamente a la foto la macro que antes pusiste(1) Se acabo, si tienes alguna duda más, no dudes en decírmelo, ha sido un placer buscar un resultado a tu pregunta, posiblemente haya soluciones mejores pero no he logrado ninguna mejor.