Eliminar todas las imágenes

Aporta tus macros y códigos Excel de interés para la comunidad.

Reglas del Foro
Este foro no es para hacer preguntas!
Este foro solo es para que aportes algo de interés para la comunidad.
(para preguntas vuelve al índice y busca los foros de "Tus Preguntas a la Comunidad")
Compartir en:
     

Eliminar todas las imágenes

Notapor TodoExcel » 16 Mar 2010 18:18

Esta macro es muy útil para eliminar y borrar todas las imágenes (shapes, images) de todas las hojas.

Código: Seleccionar todo
Sub shapekiller()
Dim ws As Worksheet
Dim SH As Shape

  For Each ws In Worksheets
      For Each SH In ws.Shapes
          SH.Delete
      Next
  Next

End Sub


Salu2.xls
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
TodoExcel
Manager Exceluciones
Manager Exceluciones
 
Registrado: 05 Jun 2004 16:05

Re: Eliminar todas las imágenes

Notapor galileogali » 16 Mar 2010 19:42

Uno de los Loops puede evitarse, así:

Sub shapekiller()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Shapes.SelectAll
Selection.Delete
Next
End Sub

GALILEOGALI
http://excelgali.mejorforo.net/
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
galileogali
Moderator
Moderator
 
Registrado: 07 Ene 2005 22:46
Ubicación: QUIROGA (ba), ARGENTINA

Re: Eliminar todas las imágenes

Notapor Antoni » 17 Mar 2010 04:03

También puede ser útil:

Código: Seleccionar todo
Activesheet.DrawingObjects.Delete

¡Atención! Borra todos los objetos incrustados en la hoja, incluidos gráficos y controles.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Eliminar todas las imágenes

Notapor Antoni » 17 Mar 2010 08:00

Hola:

He comprobado que la macro borra imágenes y dibujos, y además todos los demás objetos incrustados.
Buscando en mi "baul" he encontrado la forma de restringir el tipo de objeto a eliminar.
Os adjunto la macro con los añadidos.

Código: Seleccionar todo
Sub shapekiller()
On Error Resume Next
Dim ws As Worksheet
Dim SH As Shape

  For Each ws In Worksheets
    If ws.CodeName <> "Licencia" Then
      For Each SH In ws.Shapes
          If SH.Type = 1 Then SH.Delete  'Dibujos
          If SH.Type = 9 Then SH.Delete  'Líneas y flechas
          If SH.Type = 12 Then SH.Delete 'Controles VBA
          If SH.Type = 13 Then SH.Delete 'Imágenes
          If SH.Type = 15 Then SH.Delete 'WordArt
          If SH.Type = 17 Then SH.Delete 'Cuadros de texto
      Next
    End If
  Next

End Sub

Supongo que debe haber mas tipos, si alguien sabe de alguno mas que los vaya añadiendo.

Salu2 a to2...to2

Antoni
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros, programación y códigos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados