Excel - Búsqueda Inteligente en ListBox con rango de fechas usando dos TextBox

 
Vista:
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Búsqueda Inteligente en ListBox con rango de fechas usando dos TextBox

Publicado por Juan (184 intervenciones) el 16/11/2022 05:47:34
Hola estimados, nuevamente solicitando su ayuda.

En este archivo quiero implementar una búsqueda inteligente en un ListBox (Fact1) aplicando entre dos rangos de fechas usando dos TextBox (Fech_InicioFact y Fech_FinalFact), con 2 condiciones; que sean de clase de Documento (DF) y que el Comité no sea Vigente. La busqueda inteligente o busqueda normal debe darse al dar enter en el segundo TextBox (Fech_FinalFact)
Para activar el formulario hay que hacer lo siguiente:
Seleccionar celda A4("Cuenta") de la hoja Resumen Cart-Cli para activar UserForm1. Después haciendo click en cualquiera de las celdas de Cuenta en la columna (“A5:A57”) cargar de registros al UserForm1(3 ListBox).

Private Sub Fech_InicioFact_Change()
Dim X, Y, A As Long
UserForm1.Fact1.Clear
X = nReg(Hoja2, 2, 1)
A = 0
For Y = 2 To X
If Hoja2.Range("I" & Y) Like "*" & UserForm1.Fech_InicioFact.Text & "*" Then
UserForm1.Fact1.AddItem
UserForm1.Fact1.List(A, 0) = Hoja2.Range("I" & Y).Value
UserForm1.Fact1.List(A, 1) = Hoja2.Range("J" & Y).Value
A = A + 1
End If
Next
End Sub

Private Sub Fech_FinalFact_Change()
End Sub

Busqueda-inteligente
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
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Búsqueda Inteligente en ListBox con rango de fechas usando dos TextBox

Publicado por Juan (184 intervenciones) el 18/11/2022 13:37:19
He modificado el Código pero aun no logro el objetivo planteado.

'Filtar ListBox (Fact1)entre dos fechas con dos TextBox (Fech_InicioFact y Fech_FinalFact)

Private Sub Fech_FinalFact_Change()
Fila = Hoja2.Range("I" & Rows.Count).End(xlUp).Row
UserForm1.Fact1.Clear
For I = 2 To Fila
If UCase(Hoja2.Cells(I, 3)) Like "DF" And Hoja2.Cells(I, 22) <> "Vigente" And _
Hoja2.Cells(I, 17) Like UserForm1.Cuenta.Caption Then
If CDate(Hoja2.Cells(I, 9)) >= CDate(Fech_InicioFact) And CDate(Hoja2.Cells(I, 9)) <= CDate(Fech_FinalFact) Then
With UserForm1.Fact1
.AddItem
.List(.ListCount - 1, 0) = Hoja2.Cells(I, 9)
.List(.ListCount - 1, 1) = Format(Hoja2.Cells(I, 10), "##,##0")
End With
End If
End If
Next I
End Sub
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

Búsqueda Inteligente en ListBox con rango de fechas usando dos TextBox

Publicado por Nicol tejerina (1 intervención) el 21/11/2022 21:01:12
hola buenas estaba tratando de usar este código para buscar en un conjunto de datos pero realmente recién estoy aprendiendo de esto y me base en un código similar a este lo cual lleva a mi consulta a que hace referencia las siguientes líneas?
Dim X, Y, A As Long
X = nReg(Hoja2, 2, 1)
A = 0
For Y = 2 To X
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
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Búsqueda Inteligente en ListBox con rango de fechas usando dos TextBox

Publicado por Juan (184 intervenciones) el 21/11/2022 22:17:36
Esta es una función que contiene un bucle que se aplica para el recorrido de una hoja

'En la Función Variables declaradas de Fila y Columna de la hoja
Public Function nReg(Hoja As Worksheet, nFila As Long, nColumna As Integer)
'Ingresa y Realiza bucle hasta que sea espacio vacío
Do Until IsEmpty(Hoja.Cells(nFila, nColumna))
nFila = nFila + 1 'recorre los registros por fila
Loop
nReg = nFila
End Function

'Variable nRg que almacena el bucle que recorre la Hoja 2, y lo hace a partir de la fila 2 y columna 1. se puede aplicar a cualquier hoja cambiar que numero de hoja es, a partir de que fila y que N° de columna recorrerá. Esta acción se guarda en la variable X
X=nRg(Hoja2, 2,1)

'Bucle for empieza en la posición 2 de la fila de la hoja recorriendo todo el contenido de esta guardada en la variable X
For Y = 2 To X
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