No ejecutar macro al seleccionar una celda vacía

¡Hola Nefese!

Tengo la siguiente macro que inserta una imagen cuando selecciono cualquier celda dentro del rango "A1:A30":

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
    If Not Intersect(Target, Range("A1:A30")) Is Nothing Then
        PosiciónImagen = Target.Offset(0, 2).Address(RowAbsolute, ColumnAbsolute)
        RutaArchivo = ThisWorkbook.Path & "\" & Target & ".jpg"
        Me.Shapes(PosiciónImagen).Delete
        Set Foto = Me.Pictures.Insert(RutaArchivo)
            With Range(PosiciónImagen, Range(PosiciónImagen).Offset(8, 0).Address)
                Arriba = .Top
                Izquierda = .Left
                Ancho = .Offset(0, .Columns.Count).Left - .Left
                Alto = .Offset(.Rows.Count, 0).Top - .Top
            End With
            With Foto
                .Name = PosiciónImagen
                .Top = Arriba
                .Left = Izquierda
                .Width = Ancho
                .Height = Alto
            End With
        Set Foto = Nothing
    End If
End Sub

Ahora bien, lo que no he podido lograr es que, cuando yo seleccione una celda vacía sea que esté contenida en el target o no, pretendo que no se me ejecute la macro y a la vez se me borre la imagen que me inserta la macro. Espero me halla dado a entender.

¿Cómo le puedo hacer para poder lograrlo?

Estaré al pendiente de tu pronta respuesta, saludos.

Gracias.

P. D. Nefese, te adjunto un link descarga por si deseas echarle un vistazo a lo que estoy haciendo http://www.mediafire.com/download.php?fgxtf6et1m7vnpa

1 respuesta

Respuesta
1

Modifica estas lineas en tu código para lograr lo que quieres, cambia esta linea

If Not Intersect(Target, Range("A1:A30")) Is Nothing Then

por esta otra

If Not Intersect(Target, Range("A1:A30")) Is Nothing And Target.Value <> "" Then

y para que al seleccionar una celda vacía (este contenida o no en el rango) se borren las imagenes, incluye esta lineas antes del END IF

Else
    ActiveSheet. DrawingObjects.Delete

deberia funcionar, segun lo que entendi en tu pregunta. Pruébalo y me cuentas como te va.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas