Requiero eliminar datos a partir de una lista que fue compilada en una lista desplegable, es decí

Requiero eliminar datos automáticamente a partir de una lista que fue compilada dentro de una lista desplegable. Es decir: en las celdas A1:A20 tengo 20 datos diferentes en cada celda, después elaboré una lista desplegable usando esos mismo datos en la celda B2, de tal forma que aparecen como menú los 20 datos en la celda B2, entonces.

Lo que yo necesito hacer es: a partir de seleccionar cualquier dato en el menú de la celda B2, que de antemano sabemos exhibe al rango de datos A1:A20, una vez que este dato se haya seleccionado, dicho dato sea eliminado automáticamente de la lista A1:A20 (ya que yo imprimiré lo que diga la celda B2 y quiero evitar imprimir 2 veces la misma información), entonces el nuevo listado ahora quede acomodado en A1:A19, y en B2 solo aparecen 19 datos y asi sucesivamente.

Lo que busco es ir descartando automáticamente el trabajo que ya ha sido impreso para que no me estorbe y para que no corra el riesgo de volverlo a imprimir. De esta forma iré vaciando dato por dato, uno por uno, hasta que me acabe por completo la lista y llegue a cero. Quiero evitar el hecho de poner algún color o borrarlo manualmente porque eso genera errores por parte del usuario. Mientras mas automatizado tenga mi proceso será mejor. Gracias, saludos y ojala me puedan ayudar.

1 Respuesta

Respuesta
1

Si estamos hablando de celda B2 con validación de datos, podemos controlar el cambio que se produce en esa celda con esta rutina.

Entrá al Editor, seleccioná con doble clic el objeto HOJA donde tengas esta lista y allí copiá la macro.

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'solo controlamos la celda B2
If Target.Address <> "$B$2" Then Exit Sub
'se busca el elemento seleccionado en la col A
Set busco = Range("A1:A20").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then

'se elimina la celda desplazando el resto hacia arriba
Range("A" & busco.Row).Select
Selection.Delete Shift:=xlUp
End If
End Sub

Sdos. Si todo queda resuelto no olvides finalizar la consulta.

Hola muchas gracias por tu aportación. Solo requiero saber un poco mas de los detalles paso a paso.

1. ¿Como entro al Editor , seleccioná con doble clic el objeto HOJA donde tengas esta lista y allí copiá la macro?, no se como hacer esta parte.

gracias y saludos.

Me canso de solicitarles que indiquen su versión Excel así puedo precisar más detalles.

Si estás con versión 2003 el Editor está en el menú Herramientas, Macros...

También podes entrar con Alt+F11

El resto está más que claro: seleccioná con doble clic el objeto HOJA donde tengas esta lista y allí copiá la macro (en el panel a tu izquierda están los objetos del proyecto)

Luego volvé atu hoja y probala haciendo algú cambio en celda B2

Sdos, no olvides finalizar si todo quedó resuelto.

Elsa

Hola gracias nuevamente por su comentario, disculpe soy nuevo en esto. Mi versión 2007.

Supongo que ya está resuelto desde la anterior, pero = te lo aclaro:

En esta versión es : ficha Programador, grupo Código, Macros

Atajo de teclado = Alt y F11 (juntas)

Si la ficha Programador no está visible, ir x botón Office, Opciones de Excel, En la primer opción: 'Más frecuentes' tildar la opción de Mostrar ficha Programador.

Sdos

Elsa

Te recuerdo que la consulta sigue abierta. Si aún necesitas alguna aclaración escribime nuevamente, sino FINALIZA para que puedas dejar nuevas consultas en el futuro.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas