Insertar imágenes en excel

Respuesta de
a
Usuario
Que tal, mi nombre es Ernesto y tengo la siguiente inquietud, hace poco encontré en el foro de todo expertos la siguiente macro para poder insertar imágenes en un libro de excel, esta rutina me pareció muy interesante pues creo que la puedo utilizar para realizar un formato de cotizaciones que me pueda insertar la imagen de los productos que estoy cotizando. Ahora, ¿qué debo de hacer para que pueda convertir esta rutina en una función de excel en la cual pueda ingresar los argumentos dese una celda y me inserte al imagen en otra que elija?, por ejemplo estoy pensando en hacer un menu desplegable con los modelos de los equipos que manejo y que en otras celdas me despliegue: "Marca", "Descripción", "Precio Unitario", "Imagen"; en cuanto a los rubros de "Marca", "Descripción" y "Precio Unitario", no tengo problemas, pues lo hago con la función de "BUSCARV()" propia de excel, pero para insertar la imagen es el problema, pues mi conocimiento en macros es más bien nulo. Y otra cuestión ¿es mejor, qué tenga una base de datos de los productos en la cual se encuentre la imagen de cada modelo, o que tenga una carpeta de las imágenes (cada imagen con el nombre correspondiente al modelo) y que la rutina me pueda llamar a esa imagen dependiendo del modelo que elija?
sub Imagenes()
'Macro por Cesar Mera
Dim imagen As String
imagen = Worksheets("Hoja3").Range("B3").Value
ActiveSheet.Shapes(1).Select
Selection.Delete
Worksheets("Imagenes").Select
ActiveSheet.Shapes(imagen).Select
Selection.Copy
Sheets("Hoja3").Select
Range("A8").Select
ActiveSheet.Paste
End Sub
Saludos y gracias por su tiempo y ayuda
Experto
Hola victe!...
No se si la macro la viste conmigo pero últimamente tuve dos preguntas perecidas a la tuya.
Si gustas puedes mandarme tu archivo a v_343@yahoo.com.mx solo te pido de favor que no tenga que convertir el archivo.
Veremos en que puedo ayudarte, saludos!
 
Usuario
Gracias por su pronta respuesta en un momento le envío los archivos, espero pueda ayudarme. Saludos Cordiales
Experto
Ya te mande la respuesta...
Por cierto si te sirve no olvides ponerla aquí para futuras referencias plis.
Saludos!
Usuario
Que tal Víctor Manuel, solo para agradecerte te hayas tomado el tiempo para ayudarme con la solución del problema que propuse, la solución que propusiste cumple completamente con lo que requiero hacer para el formato que te había descrito. A continuación inserto la solución que Víctor me propuso y con la cual estoy más que satisfecho:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object
Dim modelo As String
Dim ruta As String
On Error Resume Next
If Not Target.Column = 2 Then Exit Sub
    For Each Shape In Me.Shapes
    If Shape.Top = ActiveCell.Offset(2, 0).Top Then
    Shape.Delete
    End If
    Next
    modelo = ActiveCell.Value 'nombre de la imagen
    ruta = "\\Servidor\i\Proyectos 2010\Base de Datos Prosertel\Imágenes de Equipos\" & modelo & ".JPG"
    Set Foto = Me.Pictures.Insert(ruta)
    Foto.Left = ActiveCell.Left: Foto.Top = ActiveCell.Offset(2, 0).Top - 4 'ajusta/acomoda la imagen a la celda
    'AJUSTE AL TAMAÑO QUE ME INTERESA
    Foto.ShapeRange.IncrementLeft 4
    Foto.ShapeRange.IncrementTop 4
    With Foto
    .Name = modelo
    End With
    Set Foto = Nothing
End Sub
Saludos nuevamente y gracias por la solución.
Usuario
Nuevamente Gracias por la solución que me propusiste