Saltar al contenido

liminar ítems de lista desplegable seleccionados

publicado

Hola a todos. ¿Cómo crear una macro que permita eliminar (no ocultar) los ítems de una lista desplegable una vez estos hayan sido seleccionados? Muchas gracias por su ayuda. Subo un archivo para mayor comprensión.

Eliminar item de lista desplegable.xlsx

Featured Replies

publicado

Hola.

Inserta un módulo por favor y pega la siguiente sentencia:

Sub EliminarNumero()
    Dim numero As String
    Dim rng As Range
    numero = Sheets("lista").Range("A3").Value 'Obtiene el número seleccionado en la lista
    Set rng = Sheets("datos").Range("A3:A570")
    For Each c In rng 'Recorre el rango A3:A570 en la hoja "datos"
        If c.Value = numero Then 'Si el valor coincide con el número seleccionado
            c.ClearContents 'Borra el contenido de la celda
        End If
	Next c
	Sheets("lista").Range("A3").Select 
End Sub

Debería servirte.

Saludines

publicado
  • Autor

Gracias Israel, por responder. La macro que propones se ejecuta correctamente, pero tal vez no supe explicarme. Lo que requiero es que, al seleccionar un elemento de la lista desplegable, dicho elemento se elimine, incluida la fila del origen de datos de tal forma, que cuando se vaya a seleccionar otro elemento de la lista, sólo se muestren los elementos restantes sin que se muestre el espacio en blanco que correspondía a la fila que contenía el elemento eliminado. Supongo que esa eliminación deberá realizarse al desplegar nuevamente la lista para seleccionar un nuevo elemento y, por lo tanto, dentro de mi ignorancia, pienso que el código debe hacer referencia a un evento en la hoja que contenga la lista. Espero haber sido claro y seguir contando con tu ayuda. Reitero mi agradecimiento.

publicado

A

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A3")) Is Nothing Then
        Select Case Range("A3")
            Case ""
            Case Else
                EliminarNumero
        End Select
    End If
End Sub
Private Sub EliminarNumero()
    Dim numero As String
    Dim rng As Range
    numero = Sheets("lista").Range("A3").Value 'Obtiene el número seleccionado en la lista
    Set rng = Sheets("datos").Range("A3:A570")
    For Each c In rng 'Recorre el rango A3:A570 en la hoja "datos"
        If c.Value = numero Then 'Si el valor coincide con el número seleccionado
            Hoja1.Cells(c.Row, 1).EntireRow.Delete ' Eliminamos fila
            Exit For
        End If
    Next c
    Sheets("lista").Range("A3").Select
    
End Sub

provechando el código de Israel Cassales  prueba de la siguiente manera:

Eliminar item de lista desplegable.xlsm

publicado
  • Autor

Muchísimas gracias, JSDJSD por brindarme tu solución, que es la que cumple con lo pretendido. Excelente. Demos el tema por concluido.

publicado

Hola @JSDJSD gracias por ampliar la solución que incluyo el solicitante Antonio, la diferencia de horario y actividades personales no siempre permiten una conexión continua.

Saludines.

Archivado

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