Macro que borre rectángulos y líneas (Shape)que estén dentro de un rango de celdas.

Tengo una Macro que me dibuja varios rectángulos y algunas líneas insertándolas con formas de Excel, en ciertas coodenadas, pues bien una vez visto e impreso tengo que dibujar otras con medidas similares, pero para eso primeramente debo borrar la serie anterior. Tengo el siguiente código.

sub borrar ()

   ActiveSheet.Shapes.SelectAll

   Selection.Delete

End Sub

Pero esta rutina me borra todo, hasta los botones de comando.

he probado esto pero no funciona bien

sub BorraMarcos ()

   ActiveSheet.Shapes.SelectAll
   Range("K11:R22").Select
   Selection.Delete
    Range("G6").Select

End Sub

Espero que entre todos podamos encontrar una solución os mando las gracias antipadas Manuel Cazorla

1 Respuesta

Respuesta
1

Utiliza la siguiente macro

Sub seleccionar()
'Por.Dante Amor
    Set rango = Range("K11:R22")
    For Each img In ActiveSheet.Shapes
        If img.Type = msoPicture Then
            If Not Intersect(img.TopLeftCell, rango) Is Nothing And _
               Not Intersect(img.BottomRightCell, rango) Is Nothing Then
                img.Delete
            End If
        End If
    Next
End Sub

La macro borra las imágenes que están dentro del rango de celdas "K11:R22", cambia en la macro si necesitas otro rango.

Saludos. Dante Amor

Si es lo que necesitas.

Apreciado Dante Amor gracias por la rapidez de tu respuesta pues estoy estancado con ese tema, me puse muy contento al ver tu respuesta, pero no me funciona, no hace nada, quisiera saber si tu la has probado, gracias de nuevo.

Amigo Dante no se si testo mismo ya te habrá llegado, es que soy novato en esto, bueno la macro que me has enviado tiene buena pinta, pero no me hace nada, quisiera saber si tu la has probado, yo ya estaba muy contento al ver con la rapidez que me has contestado, pues ya estoy un poco desmoralizado con el tema.

Saludos.

Claro que la he probado y funciona.

Lo que vayas a borrar deberá estar completamente dentro del rango de celdas:

De las tres figuras, la única que va a borrar es la que está completamente adentro del área sombreada.

Amplía el área a borrar. Vuelve a probar y me comentas.

Saludos. Dante Amor

Hola Dante gracias por la macro si que funciona de maravilla, pero solo borra imágenes insertadas, no borra las formas de rectángulos y líneas que es lo que yo necesito, no se si se podrá hacer, estoy empezando a desmoralizarme. Valoro lo que me has enviado hasta ahora y si se te ocurre algo que me pudiera ayudar te lo agradecería de corazón.

Gracias hasta pronto

Tienes razón tiene una condición para borrar solamente imágenes, pero ya se la quité. Prueba con esta:

Sub seleccionar()
'Por.Dante Amor
    Set rango = Range("K11:R22")
    For Each img In ActiveSheet.Shapes
        If Not Intersect(img.TopLeftCell, rango) Is Nothing And _
           Not Intersect(img.BottomRightCell, rango) Is Nothing Then
            img.Delete
        End If
    Next
End Sub

¡Gracias! Dante eres genial, yo cuando sea mayor quiero ser como tu, estaba a punto de tirar la toalla, gracias de nuevo.

Observación:

Estoy recibiendo respuestas tuyas a preguntas que yo no he hecho, como soy nuevo en el foro no se muy bien como funciona.

En la configuración de tu perfil (donde está la M dentro de un círculo), presiona click, selecciona la opción Configuración:

En la parte de abajo dice: "Notificaciones", en "Personas", hay unos botones, seguramente están en verde, solamente presiona click para apagarlos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas