Imágenes en Excel

Quiero hacer una macro que borre unas imágenes que coloqué me diante otra macro, es decir yo realicé una macro que coloca las imágenes pero no he podido realizar la macro que las borre y entonces me toca borrarlas manualmente.

1 respuesta

Respuesta
1
Si necesitas eliminar TODAS las imágenes que has insertado puedes utilizar el siguiente código:
ActiveSheet. Shapes. SelectAll
Selection.Delete
Debes tener en cuenta que si tienes otros componentes como Botones de Comando o elementos dibujados con la Barra de Herramientas de Dibujo (Rectángulos, Cuadros de Texto, etc.) también serán eliminados.
Si esto NO soluciona tu problema me escribes de nuevo sin finalizar la Pregunta y veremos cómo podría escribirse una macro más elaborada. Si te sirvió pues listo ...
Suerte !
Rogers R.
Hola Rogers
Eso era lo que quería y se que está bien pero me está mostrando un error en el modulo de inserción en esta linea : ActiveSheet.Shapes(myVar.Count).Name = "EstaSi" & myVar.Count
Ya casi lo logras, ayúdame por favor
A ver si le dimos con el chiste ...
Cada vez que insertas una Imagen es tratada como un Objeto Shape por Excel y se le asigna un Indice. Así que para saber cuáles se eliminarán después, cuando insertas el escudo le cambias el Nombre al Shape:
Sub inserta_imagen()
ActiveSheet.Pictures.Insert ("C:\graf\escudo.gif")
Set myVar = Sheets(1).Shapes 'Obtiene el número de Shapes en la Hoja
'myVar.Count será el último Indice asignado
ActiveSheet.Shapes(myVar.Count).Name = "EstaSi" & myVar.Count
End Sub
Los nombres quedarán como "EstaSi1", ..., "EstaSi12", etc.
Para eliminar sólo los escudos buscas los Shapes cuyo Nombre comienza con "EstaSi". La rutina parecerá un poco complicada por el manejo de los límites del For, pero la hice así para no utilizar recurrencia ... en fin:
Sub elimina_imagenes()
Set myVar = Sheets(1).Shapes
For i = 1 To myVar.Count
If i > myVar.Count Then Exit Sub
If Mid(ActiveSheet.Shapes(i).Name, 1, 6) = "EstaSi" Then
ActiveSheet.Shapes(i).Delete
i = 0
End If
Set myVar = Sheets(1).Shapes
Next i
End Sub
Eso es todo ...
Suerte !
Rogers R.
PUES. No olvides la valoración
Hola Rogersr
Muchas gracias por tu respuesta, de verdad estoy muy agradecido por tu interés.
Te voy a explicar que tengo.
Diseñé en la hoja unos carnets de fútbol de la universidad donde yo trabajo, cada carnet tiene el logotipo de la universidad, los nombres de los jugadores y el escudo del equipo, lo único que diferencia los carnets es el escudo del equipo, cuando voy a sacar los carnets de un equipo, traigo los nombres de los jugadores desde una base de datos y corro la macro que pone los escudos, cuando voy a sacar los de otro equipo, cambio los nombres y tengo que borrar los escudos del equipo anterior para poner los nuevos, si corro el código que me enviaste me borra las otras imágenes que tengo en la hoja y sólo quiero que borre los escudos que puse con la macro...
Ojalá me puedas ayudar
He realizado algunas pruebas y funciona perfecto ... verifica por favor la ruta de acceso, el nombre de archivo, etc. si no funciona me sería de utilidad saber cuál es el mensaje de error que despliega. Pero te repito que aquí me funciona sin problemas.
Suerte !
Rogers R.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas