Saltar al contenido

Borrar imagen con macro


jechu85

Recommended Posts

publicado

Hola a todos. tengo un problemilla, es que tengo para insertar una imagen cuando cambio una celda pero resulta que pongo para que antes elimine la anterior y no lo hace, la imagen la insera una encima de otra sin borrar nada. tambien me gustaria saber como poder poner la imagen con la orden de que se inserte por debajo, ya que son de unas graficas y tapan las lineas que uso para las graficas. este el codigo que tengo:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

Select Case Target.Column

Case 1

ActiveSheet.Shapes(Target.Address).Delete 'con esto se deberia borrar la imagen de antes pero no lo hace

For x = 1 To 7 'Rango de la lista

If Target.Value = Cells(x, 1) Then Imagen = Cells(x, 2) 'lugar del nombre y ubicacion

Next x

ActiveSheet.Pictures.Insert(Imagen).Select

With Selection.ShapeRange

.LockAspectRatio = msoFalse

.Top = Target.Offset(-16, 1).Top + 1

.Left = Target.Offset(0, 7).Left + 1

.Height = Target.Offset(0, -12).Height - 2

.Width = Target.Offset(0, -22).Width - 2

End With

End Select

Target.Offset(0, 0).Select

End Sub

Un saludo a todos

publicado

Los objetos se borran por su nombre o por su posición dentro de la colección Shapes.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next


Select Case Target.Column
Case 1
ActiveSheet.Shapes([COLOR=#ff0000][B]"MiImagen"[/B][/COLOR]).Delete 'con esto se deberia borrar la imagen de antes pero no lo hace
For x = 1 To 7 'Rango de la lista


If Target.Value = Cells(x, 1) Then Imagen = Cells(x, 2) 'lugar del nombre y ubicacion


Next x

ActiveSheet.Pictures.Insert(Imagen).Select

[COLOR=#ff0000][B]Selection.Name = "MiImagen"[/B][/COLOR]

With Selection.ShapeRange


.LockAspectRatio = msoFalse
.Top = Target.Offset(-16, 1).Top + 1
.Left = Target.Offset(0, 7).Left + 1
.Height = Target.Offset(0, -12).Height - 2
.Width = Target.Offset(0, -22).Width - 2


End With


End Select
Target.Offset(0, 0).Select
End Sub


[/CODE]

publicado

Fenomenal muchas gracias ahora entiendo donde tenia mi absurdo fallo, lo que solo me falta saber, que no tengo ni idea, es como mandar la imagen que se inserta al fondo.

un saludo

publicado

Hola, gracias por el código, pero resulta que no se donde colocarlo, he probado con ponerlo después de la orden de insertar imagen o después de las coordenadas de la imanen (el with) e incluso dentro del with pero nada. no se donde colocarlo para que funcione, siempre me pone la imagen delante.

Un saludo y perdon por las molestias

publicado

Error mío debe ser: Selection.ShapeRange.ZOrder msoSendToBack


[COLOR=#333333]With Selection.ShapeRange[/COLOR]
.LockAspectRatio = msoFalse
.Top = Target.Offset(-16, 1).Top + 1
.Left = Target.Offset(0, 7).Left + 1
.Height = Target.Offset(0, -12).Height - 2
.Width = Target.Offset(0, -22).Width - 2
.[B]ZOrder [COLOR=#0000cd][B][I]msoSendToBack[/I][/B][/COLOR][/B][COLOR=#333333]
End With[/COLOR][/CODE]

[b][color=#0000cd][b][/b][/color][/b]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.