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
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
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