Eliminar registro de un listbox vinculado a hoja

Querría en el formulario tener un boton de "Eliminar" que se ejecutara de la siguiente manera:

Al abrir el formulario, en el listbox deberían aparecer automáticamente todos los registros, filas de la hoja "Titulos" con sus datos. Lo que haríamos sería seleccionar una fila concreta de ese listbox bien del listado general o bien del listado selectivo creado al "Buscar" con el combo. Pulsaríamos el botón "Eliminar" y se nos advertiría con un mensaje tipo Si/No si queremos borrar la fila definitivamente o no. Si apretamos "Si" la fila se borraría del listbox y también de la hoja "Titulos".

1 Respuesta

Respuesta
2

 H o l a:

Te anexo la macro 

Private Sub CommandButton5_Click()
'Por.Dante Amor
    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecciona un registro"
        Exit Sub
    End If
    '
    res = MsgBox("Deseas eliminar el registro", vbQuestion + vbYesNo, "ELIMINAR REGISTRO")
    If res = vbYes Then
        Sheets("TITULOS").Select
        f = ListBox1.List(ListBox1.ListIndex)
        Rows(f).Delete
        CommandButton1_Click
        MsgBox "Registro eliminado"
    End If
End Sub

S a l u d o s

Hola

La macro me está dando fallos. Lo primero comentarte que el botón de "Eliminar" no debe solo eliminar una de las filas que genera "Buscar" que es el commandbutton_click sino que debe poderse eliminar cualquier fila de la hoja, por eso te comenté en la pregunta que al abrir formulario debería mostrarse en el listbox automáticamente (sin apretar BUSCAR) todas las filas de la hoja y que al seleccionar una pudiéramos borrarla. Ahora mismo el botón ELIMINAR solo borra las filas resultantes del botón buscar, del valor que busco. Habría que poder abrirse el useform ya con todas las filas cargadas de la hoja "Titulos" y seleccionar una y eliminarla o bien ir al combo, buscar un valor y de las filas encontradas también poder eliminar la seleccionada.

Otro cosa que falla ahora es el botón Buscar... (antes no fallaba) ahora cuando en el useform busco  por ejemplo "fundacion" los valores de la columna CODIGO no son correctos, por ejemplo de "fundacion" debería aparecer como codigo "r25" "r26", "r27" ,"r28", "r33", "r34", "r1181" y sin embargo aparecer erróneamente "r1", "r2" etc y asi con todos los encabezados.

Y si busco seleccionando en el combo la columna CODIGO y busco r3 o cualquier otro código me salta un mensaje de que no se encontraron resultados... cuando sí los hay.

Es decir que ahora el botón BUSCAR no funciona bien por alguna razón.

A la espera de tu ayuda gracias

Esta es una nueva petición:

"Al abrir el formulario, en el listbox deberían aparecer automáticamente todos los registros"

Podrías ponerla en una pregunta nueva.


Como consecuencia de que la columna A ahora tiene una fórmula. La búsqueda se hacía por fórmulas ahora es por valores:

Set b = r.Find(titulo, lookat:=xlPart, LookIn:=xlValues)

Antes se copiaba el resultado con fórmulas, por eso el código cambiaba, pero ahora se está pegando como valores

H1. Rows(b. Row). Copy
h2.Rows(j).PasteSpecial Paste:=xlValues


S a l u d o s

Hola

Algo hago mal porque inserto el código y me da errores.

Podrías ponerme todo el código corregido de BUSCAR, en un archivo excel (incluso con lo de abrir formulario con todas las filas) y me lo envías por correo como hasta ahora hemos hecho.

El tema es que funcione correctamente el botón BUSCAR porque ya no funciona bien para así borrar las filas correctamente.

Gracias

Ya te envié el archivo, el código es solamente la referencia de lo que cambié.

Recuerda valorar las respuestas. S a l u d o s

Hola

Perdona, lo que pasa es que cuando te respondí a tu código aquí aún no me había llegado el correo con el archivo.

Por lo que veo solo puedo valorar un tema una vez y claro si existen fallos y hay que hacer correcciones hasta que no se solucionen no puedo valorar una respuesta...

Con gusto la valoraré cuando la pregunta esté solventada, pero es que hay errores en la columna CODIGO

Hay un problema y es que los valores de la columna CODIGO nunca pueden ser modificados, es como un código exclusivo e identificativo del registro y ahora cuando por ejemplo yo busco R5 Y elimino la fila 6 "Frankenstein Desencadenado" con CODIGO R5, la fila 7 "La nave estelar" pasa a fila 6, eso está correcto pero lo que no debe hacer es pasar el código R6  de "La nave estelar" a R5... Ese código es exclusivo del registro eliminado "Frankenstein Desencadenado" y no se puede usarse para ningun otro registro. Cada registro tiene su código único.

Vamos que si elimino filas, ok a que se reactualice el número de filas pero los valores de CODIGO no se deben modificar

Si me puedes solucionar este fallo te lo agradecería y por supuesto puntuaría con un excelente como siempre.

Saludos

Entonces quita la fórmula de la columna A, y vuelve a poner tus códigos desde R1

La macro elimina el registro, esa es la respuesta a esta pregunta, por eso pido la valoración, sin duda, si la macro no está funcionando, deberás valorar hasta que funcione correctamente.

Te envié un correo con la aclaración al código y no me respondiste, por eso puse la fórmula, pero el asunto se soluciona eliminando la fórmula y poniendo nuevamente los códigos.

La pregunta no admite más respuestas

Más respuestas relacionadas