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.
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 de edwinhenao
1