Duda con macro que inserta imagen

Que tal.
Disculpa molestarte nuevamente con esta macro, la cual ya me habías contestado; te anexo la Macro de la duda que ya me habías resuelto, y más abajo pongo tu respuesta, por si no recuerdas ;)...
Consulta anterior:
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.

TU RESPUESTA...
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.

Ahora, el problema es que no me pega la imagen, y por la parte que me mencionaste de agregarle el On Error Resume Next pues no me da error ni nada; por lo de que, si la primera vez que la ejecuto no encuentra que borrar y genera error, pues lo que hice fue pegarla manualmente para ver si así quitaba el error pero lo que hace, después de esto es unicamente borrar la imagen sin pegar la nueva, y ya al quitarle la linea que dice que si hay error lo "brinque" y continué, para saber la parte que genera el error, me dice que no encuentra el nombre especificado.
Ante todo disculpa por la insistencia con esta macro y por las moloestias.
Agradecería de tu apoyo nuevamente.

1 respuesta

Respuesta
1
Revisa la ruta y el nombre de la imagen, así como, el nombre de la hoja.
Set pic = .Pictures.Insert("C:\Imagen.jpg") 
        With Sheets("IMAGEN").Range("A1")
...
Worksheets("IMAGEN"). Shapes. AddPicture("C:\Imagen.jpg", True, True, 235, 180, 480, 300).Select
Parece que ya quedo... pero ahora me da otro error: NO SE PUEDE OBTENER LA PROPIEDAD INSERT DE LA CLASE PICTURES
Según estuve buscando y dice que en problema de la version o algo así, pero no dicen las posibles soluciones.
Nota. Mi version de EXCEL es 2007.
Agradecería bastante si me pudieras apoyar, se me olvidaba este error me lo da con ambas macros (la que yo tengo, y la que tu me proporcionaste más pequeña.
Saludos!
No he podido reproducir el error... en un foro recomindan instalar el paquete de compatibilidad, lo puedes bajar de la página de microsoft. "Paquete de compatibiliadad de office 2007".
Pues mira...
Ya quedo resuelto jajaja.
Es que la imagen que se tenia que pegar (que en teoría se tiene que llamar Imagen y estar en C:) estaba mal configurada y el detalle es que se nombraba Imagen.jpg pero ya, quedo sin problemas.
De antemano agradezco tu tiempo y tu apoyo brindados.
Saludos!
Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas