Supongamos la situación de la imagen siguiente:
El objetivo es claro, eliminar únicamente las imágenes situadas en el rango A3:D25.
Insertamos y ejecutamos el siguiente procedimiento 'BorrarImgRango':
Sub BorrarImgRango() 'Añadimos líneas para eliminar imágenes en el rango A3:D25 'Declaramos variables. Dim PrimeraFila As Integer, PrimeraColumna As Integer Dim UltimaFila As Integer, UltimaColumna As Integer Dim img As Object Dim tc As Long, tr As Long PrimeraFila = Range("A3").Row PrimeraColumna = Range("A3").Column UltimaFila = Range("D25").Row UltimaColumna = Range("D25").Column 'Recorre cada objeto de la hoja y valida su posición. For Each img In ActiveSheet.Shapes On Error Resume Next 'controlamos fallo al NO encontrar imágenes tc = img.BottomRightCell.Column tr = img.BottomRightCell.Row If (tc >= PrimeraColumna And tc <= UltimaColumna) And _ (tr >= PrimeraFila And tr <= UltimaFila) Then If img.Type = 13 Then 'mensaje que muestra la posición de inicio de la imagen MsgBox img.Name & "-" & img.Type & "-" & img.TopLeftCell.Address img.Delete End If End If On Error GoTo 0 Next End SubEl resultado es:
Notemos que la imagen debe estar en el interior del rango, al menos su punto inferior-derecha, y es que en este ejemplo estamos empleando la propiedad .BottomRightCell que representa la celda que se encuentra debajo de la esquina inferior derecha del objeto.
Podríamos combinar el código con otra propiedad empleada en la línea:
MsgBox img.Name & "-" & img.Type & "-" & img.TopLeftCell.Address
donde la propiedad .TopLeftCell nos retorna la celda superior-izquierda; por tanto, sería posible con una simple modificación del código, eliminar exclusivamente aquellas imágenes que estuvieran completamente en el interior del rango...
es posible hacer esto mismo, sin tener que aplicar macros, ya que los que no las controlamos nos cuesta bastante conseguirlo
ResponderEliminarun saludo
Hola Juan,
Eliminarpara eliminar imágenes, sin emplear macros las debes seleccionar.. así que para hacerlo sin macros, sea cual sea, siempre deberá pasar por esa selección..
bien directamente sobre la hoja o bien a través del Panel de Selección...
Un saludo
La ejecuto una vez y luego falla a que se debe...Les agradezco
ResponderEliminarHola, que tal estás?
EliminarUn placer saludarte.
¿Qué error o fallo te devuelve?
Saludos cordiales