VBA EXCEL eliminar imagen en una fila

En una Base de Datos, tengo una imagen que lleva asociada una macro. Está situada en la fila 2 (títulos de columna), y al ser larga, ocupa 4 columnas, desde la g hasta la j, ambas incluidas.

Debido a que tengo fórmulas que hacen referencia a la fila 2, en adelante, no quiero eliminar esa fila e insertar otra, con los mismos títulos y con otro imagen idéntica, pero asociada a otra macro, por si las fórmulas se quedan pilladas.

Entonces lo que estoy intentando, con una macro, es borrar la fila 2, en lugar de eliminarla, pero sucede que se borra todo menos la imagen (utilizo clear), y cuando copio la otra fila en esa, que lleva los mismos títulos y mismo formato, la imagen que contiene esta segunda fila, asociada a otra macro, se solapa encima de la primera imagen que tiene otra macro distinta asociada.

Las preguntas son:

1.- ¿Cómo puedo borrar toda la fila, incluida la imagen, para copiar nuevamente la otra fila con su imagen?

2.-¿Cómo puedo borrar sólo la imagen, ya que los títulos son los mismos, para insertar seguidamente la otra imagen, en el mismo lugar?

Cualquiera de las dos soluciones sería buena.

1 Respuesta

Respuesta
3

1.1 Para borrar toda la fila y la imagen, pero la imagen tiene que estar en esa fila, puedes utilizar esto:

Rows(2).Delete

1.2. Si quieres borrar el contenido de la fila (esta opción no borra la imagen)

Rows(2). Clear

1.3 Si quieres borrar el contenido de la fila y respetar los formatos (tampoco borra la imagen)

Rows(2). Clearcontents

2.1. Si quieres eliminar solamente la imagen y conoces el nombre de la imagen, puede ser así

Sheets("Hoja1").Shapes("7 Rectángulo").Delete

2.2. Si no conoces el nombre de la imagen, pero tienes el texto, suponiendo que dentro de la imagen tienes el texto: "reporte", entonces puedes borrarla así

For Each dr In ActiveSheet.DrawingObjects
dr.Select
If dr.Text = "reporte" Then
dr.Delete
Exit For
End If
Next

2.3. Si no conoces el nombre de la imagen ni el texto contenido dentro de la imagen. Esta instrucción borra todas las imágenes de la hoja.

ActiveSheet.DrawingObjects.Delete

2.4. Si lo que quieres borrar es un figura y no conoces el nombre ni el texto, puede ser:

ActiveSheet.Shapes.SelectAll
Selection.Delete

2.5. Si es una figura y solamente tienes una figura en la hoja, puede ser así

ActiveSheet.Shapes.Item(1).Delete

Espero que te sirva alguna solución.

Saludos. DAM

No olvides finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas