Hola Jeaa
Revisé tu form y está trabajando correctamente, solo que creo que hay un procedimiento manual que tienes que implementar, tienes Botón Buscar y Botón Limpiar.
Buscas tu primer código, te da los resultados, si vas a cambiar el código de búsqueda el usuario debe limpiar y luego ingresar el codigo y clic en buscar, pero si lo quieres en macros aquí te va una explicación que aprendí ayudaexcel.
No se puede asignar una variable en el userform porque estarás "cargando la memoria temporal del excel = Lentitud en procesos". La variable estará aumentando la memoria temporal de excel mientras el userform esté activo
Por tal razón, en tu botón buscar agrega esta instrucción en el botón Buscar
Private Sub CBbuscar_Click()
If Txtcodigo.Value = Empty Then
MsgBox "Para realizar una busqueda, es necesario que ingrese un codigo", vbCritical, "Error de Usuario"
Txtcodigo.SetFocus
Exit Sub
Else
Call BuscarCodigo
End If
End Sub
En tu módulo de Vba agrega esta instrucción
Public Sub BuscarCodigo()
Dim codigo As String
codigo = ReporteAgua.Txtcodigo.Value
Call Mimodulo.limpiar
ReporteAgua.Txtcodigo.Value = codigo
Call Mimodulo.Buscar
End Sub
Con esto que te acabo de dar te explico el porque:
Cuando habilitas una variable en el modulo de vba, se crea cuando empieza tu macro y luego muere al finalizar la macro, la memoria temporal siempre la tendrás disponible para más consultas sin procesos ralentizados.
Espero te sriva.
Saludos desde Nicaragua