Excel - Error al buscar listbox userform

 
Vista:
Imágen de perfil de Claudio

Error al buscar listbox userform

Publicado por Claudio (17 intervenciones) el 09/10/2024 05:58:54
Buenas noches estimados,

En esta oportunidad traigo nuevamente mi formulario de base de datos para que me ayuden a resolver el siguiente impase.

Resulta que al buscar en el listbox1 (Listado general), que viene de la hoja Dependientes lo hace bien, el detalle que tengo es que al seleccionar la persona del listado, me lleva a la primera persona del listado.
Ejemplo tengo el siguiente listado:
Yonny Rivera
Ibed Marissa Zapata
Jose Suarez
Deicy Aristizabal
Maria Muñoz

Entonces al buscar a Maria lo consigue pero al seleccionarla me lleva al nombre de Yonny.

El otro detalle es que al borrar una persona de la hoja Dependiente y actualizar el listBox hace su tarea pero no elimina a las personas que tiene a cargo, por lo contario le quedan esos datos a la persona siguiente al igual que su codigo. Dando como resultado erro en la hoja relacionadas porque los codigo ya no concuerdan. Ni tampoco al hacer el informe.

Espero me haya podido dado a entender. Cualquier detalle me lo hacen saber.

Adjunto archivo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error al buscar listbox userform

Publicado por Antoni Masana (2540 intervenciones) el 10/10/2024 12:10:16
El responsable de el problema que tienes son estas tres líneas de código:

1
2
3
Private Sub txtBuscar_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    txtBuscar.value = ""
End Sub

Estas evento al ejecutarse provoca que se ejecute el Private Sub txtBuscar_Change() y ya la tenemos liada.

Yo lo solvento de la siguiente forma:

Defino una variable publica:

1
Private SW_Cambiar As Boolean

Inicializar la variable:

1
2
Private Sub UserForm_Initialize()
    SW_Cambiar = False

Y despues haria esto:

1
2
3
4
5
6
7
8
9
10
Private Sub txtBuscar_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    SW_Buscar = True: txtBuscar.value = ""
    SW_Buscar = False
End Sub
 
Private Sub txtBuscar_Change()
    If SW_Buscar Then Exit Sub
 
    Me.ListBox2.RowSource = ""
    Me.ListBox2.ColumnHeads = False

De todas formas la cuestión es ¿Es necesario este evento?


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error al buscar listbox userform

Publicado por Antoni Masana (2540 intervenciones) el 10/10/2024 15:00:46
A la explicación anterior le falta como llego a esta conclusión.

En primer lugar busco el evento CargaListBox1 y con la tecla F9 marco la primera línea de código.
Cada vez que ejecuta este evento viene del evento , hasta aquí normal, bien.
Cuando seleccionó el elemento en el ListBox1 se ejecuta el evento LisBox1_Click pero este no llama al CargaListBox1.
Entonces observó que al saltar a al ListBox1 el contenido del txtBuscar se ha limpiado y como se que el evento LisBox1_Click se ejecuta cuando se modifica el contenido del txtBuscar ya sea el usuario o el código, busco donde se limpia el objeto y ho sorpresa es en este punto del programa:

1
2
3
Private Sub txtBuscar_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    txtBuscar.value = ""
End Sub

Lo que causa el problema.

No soy un experto en VB y me faltan muchas cosas por aprender pero con lo poco que se busco soluciones ingeniosas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Claudio

Error al buscar listbox userform

Publicado por Claudio (17 intervenciones) el 10/10/2024 18:13:51
Buenos dias estimado,

Estoy notando que al usar el botón actualizar listado después de buscar, no me esta arrojando el listado completo, se queda en el nombre de la persona buscada.

El otro tema que no he liado es que al borrar una persona de la hoja DEPENDIENTES, y al actualizar el listado este se borra pero el código se pasa a otra persona. y ya no concuerda con la hoja RELACIONADAS.

Que se podria hacer al respecto.

En espera de sus valiosos comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error al buscar listbox userform

Publicado por Antoni Masana (2540 intervenciones) el 13/10/2024 18:32:10
Esta parte no la entiendo:

El otro tema que no he liado es que al borrar una persona de la hoja DEPENDIENTES, y al actualizar el listado este se borra pero el código se pasa a otra persona. y ya no concuerda con la hoja RELACIONADAS.

¿Como borras: una persona de la hoja DEPENDIENTES?
¿Como haces: actualizar el listado ?

No entiendo como se ejecuta esta parte.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Claudio

Error al buscar listbox userform

Publicado por Claudio (17 intervenciones) el 13/10/2024 22:37:55
Buenas tardes, tiene toda la razón no indico como se borran las personas de la hoja dependientes. Las elimino desde la misma hoja. Con el primer icono actualizo los cambio que hago en la hoja dependiente.

Mire en la segunda imagen observe que el código D011 del formulario no corresponde al de la hoja relacionadas. Esto pasa cuando hago el tema de la eliminación.

Espero me haya dado a entender.

Estare atento a sus valiosos comentarios.



Captura-de-pantalla-2024-10-13-152931
Captura-de-pantalla-2024-10-13-153331
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error al buscar listbox userform

Publicado por Antoni Masana (2540 intervenciones) el 13/10/2024 23:54:59
Mal hecho.
Si tienes hojas con datos relacionados no puedes permitir que se borren o modifiquen los datos de una hoja a mano.
Lo suyo es:
- Proteger la hoja para que los cambios se realicen a través del formulario.
- Poner un icono en el formulario para borrar las personas dependientes y las relacionadas.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Claudio

Error al buscar listbox userform

Publicado por Claudio (17 intervenciones) el 10/10/2024 17:56:48
Buenos días estimado, he probado el código y funciona muy bien.

De todas formas la cuestión es ¿Es necesario este evento?
Este formulario lo he elaborado viendo tutoriales como le comente soy nuevo en este lenguaje pero estoy entusiasmado con este tema de macros.

Si usted que tiene mas experiencia no lo ve necesario listo hagamos sus cambios que son totalmente bienvenidos para la mejora del formulario.

Agradezco toda ayuda.

Saludos y un fuerte abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar