Macro que inserta imagen

Hola muy buen día.
Quisiera saber si me puedes ayudar con una macro con la que estoy "atorado"
Tengo la sig. Macro:


Sub Copiarimg()
    Dim pic As Picture
     With Sheets("IMAGEN")
        Set pic = .Pictures.Insert("C:\Imagen.jpg")
        With Sheets("IMAGEN").Range("A1")
        'MODIFICA LA ALTURA PARA UBICAR LA IMAGEN
            pic.Top = 180
        'MODIFICA DIRECCION HACIA LA DERECHA
            pic.Left = 235
        'MODIFICA DIMENSIONES DE LA IMAGEN
            pic.Width = 480
        End With
    End With
End Sub

La cual funciona a la perfeccion; el problema es que cada que la ejecuto en mi hoja de Excel me pega una imagen diferente, por lo que se van acumulando varias, y hace mi documento bastante pesado...
La cuestión en si es: ¿Existe la forma de que cada vez que termine de ejecutarse la Macro borre la imagen utilizada para así dejar la hoja como "Nueva"? ¿O al iniciarse la misma macro busque dicha imagen y la borre para así colocar una nueva?
Nota: La imagen insertada con la macro no es la única que aparece en esa hoja ya que es una plantila y tiene tres imágenes más.

1 Respuesta

Respuesta
1
Muy interesante tu pregunta prueba este código, hay que agregar un On Error porque la primera vez que se ejecuta la macro no encuentra la imagen y luego a lo último le damos un nombre para poder borrarla.
Sub Copiarimg()
On Error Resume Next
ActiveSheet.Shapes("Foto").Delete
    Dim pic As Picture
     With Sheets("IMAGEN")
        Set pic = .Pictures.Insert("C:\Imagen.jpg")
        With Sheets("IMAGEN").Range("A1")
        'MODIFICA LA ALTURA PARA UBICAR LA IMAGEN
            pic.Top = 180
        'MODIFICA DIRECCION HACIA LA DERECHA
            pic.Left = 235
        'MODIFICA DIMENSIONES DE LA IMAGEN
            pic.Width = 480
        End With
    End With
pic.Select
Selection.Name = "Foto"
Range("A1").Activate
End Sub
............................
Esta otra macro más corta hace lo mismo...
Sub Macro7()
On Error Resume Next
    ActiveSheet.Shapes("Foto").Delete
    Worksheets("IMAGEN").Shapes.AddPicture("C:\Imagen.jpg", True, True, 235, 180, 480, 300).Select
    Selection.Name = "Foto"
    Range("A1").Activate
End Sub
No olvides calificar para cerrar la pregunta o volver a preguntar si faltó algo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas