Excel - Ítem de LitBox1 busque en hoja y si lo encuentra cargue el ListBox2

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

Ítem de LitBox1 busque en hoja y si lo encuentra cargue el ListBox2

Publicado por Juan (184 intervenciones) el 10/11/2022 01:09:53
Hola a todos.
Necesito seleccionar con doble click un ítem (Vencimiento y Monto) del UserForm1.ListBox Fact1 y buscar en una Hoja Cartola Cli y si lo encuentra llenar de registros a otro UserForm2.ListBox Detalle_Factura con condición adicional que correspondan solo a Clase de Documento DF (Cta Cliente-ClaseDoc-Referencia-Monto-Vencimiento-Texto). Adjunto Archivo.



Carga-de-ListBox-Factura1-al-ListBox-Detalle_Deudor

Este es el código que vengo trabajando pero hasta ahora no consiga el objetivo.

Private Sub Fact1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim I As Integer
Dim U As Integer
'
U = nReg(Hoja2, 2, 1)

With Fact1
If Hoja2.Cells(U, 10).Value = UserForm1.ListIndex Then

' esto solo capia el item seleccionado (donde se hace doble click)
UserForm2.Detalle_Deudor.AddItem Hoja2.Cells(U, 1) 'Producto

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Fecha de Requerimiento

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'CAV's

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Agencia

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Documento

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'FUT

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'No. Cliente

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Cliente

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Transaccion

UserForm2.Detalle_Deudor.List(UserForm2.Detalle_Deudor.ListCount - 1, 1) = Hoja2.Cells(U, 2).Value 'Transaccion

End If
End With

End Sub

Public Function nReg(Hoja As Worksheet, nFila As Long, nColumna As Integer)
Do Until IsEmpty(Hoja.Cells(nFila, nColumna))
nFila = nFila + 1
Loop
nReg = nFila
End Function
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

Ítem de LitBox1 busque en hoja y si lo encuentra cargue el ListBox2

Publicado por Juan (184 intervenciones) el 10/11/2022 01:35:10
Adjunto Archivo para su revisión del caso planteado.

Para activar el Userform1 con registros: Click en celda ("Cuenta") de la Hoja Resumen Cart-Cli. Después cargar cualquiera de los registros de Cuenta en la columna (A5:A184) el UserForm1
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

Ítem de LitBox1 busque en hoja y si lo encuentra cargue el ListBox2

Publicado por Juan (184 intervenciones) el 12/11/2022 10:18:41
Hola a todos. He actualizado el código, pero hay algún detalle que no me permite conseguir el objetivo.

Necesito seleccionar con doble click un ítem (Vencimiento y Monto) del UserForm1.ListBox Fact1 y buscar en una Hoja Cartola Cli y si lo encuentra llenar de registros a otro UserForm2.ListBox Detalle_Deudor con condición adicional que correspondan solo a Clase de Documento DF (Cta Cliente-ClaseDoc-Referencia-Monto-Vencimiento-Texto). Adjunto Archivo.

Para activar el Userform1 con registros: Click en celda ("Cuenta") de la Hoja Resumen Cart-Cli. Después cargar Userform1 seleccionando cualquiera de los registros de Cuenta en la columna (A5:A184).

CODIGO ACTUALIZADO

Private Sub Fact1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim I, Z As Integer
Dim CartolaCli As Worksheet
Set CartolaCli = Sheets("Cartola Cli")
Dim filas As Long
filas = CartolaCli.Range("Q1000000").End(xlUp).Row
UserForm2.Show
With UserForm2.Detalle_Deudor
.Clear
For Z = 0 To UserForm1.Fact1.ListCount - 1 'Este bucle pasa todos los item seleccionados
If UserForm1.Fact1.Selected(Z) = True Then
If filas > 1 Then
For I = 2 To filas
Buscar = CartolaCli.Range("I" & I)
If Buscar = UserForm1.Fact1.Selected(Z) Then
.AddItem
.List(.ListCount - 1, 0) = CartolaCli.Range("Q" & I)
.List(.ListCount - 1, 1) = CartolaCli.Range("C" & I)
.List(.ListCount - 1, 2) = CartolaCli.Range("D" & I)
.List(.ListCount - 1, 3) = CartolaCli.Range("J" & I)
.List(.ListCount - 1, 4) = CartolaCli.Range("I" & I)
.List(.ListCount - 1, 5) = CartolaCli.Range("K" & I)
End If
Next
UserForm2.Total_Reg.Caption = .ListCount
End If
End If
Next
End With
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
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ítem de LitBox1 busque en hoja y si lo encuentra cargue el ListBox2

Publicado por Juan (184 intervenciones) el 15/11/2022 12:36:05
Después de tanto probar y probar encontré la solución. El problema era que la fecha en ListBox Userform1.Fact1 al momento de buscar en la Hoja Cartola Cli lo hacía en formato “mm/dd/yyyy”, me explico; por ejemplo, si en UserForm.Fact1 se visualizaba la Fecha 14/11/2022 cuando iba a buscar a la Hoja lo hacía como 11/14/2022 por tanto nunca encontraba el registro. Con el Cdate se solucionó el problema.

Private Sub Fact1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim I, Z As Integer
Dim CartolaCli As Worksheet
Set CartolaCli = Sheets("Cartola Cli")
Dim filas As Long
filas = CartolaCli.Range("Q1000000").End(xlUp).Row
UserForm2.Show
With UserForm2.Detalle_Deudor
.Clear
If filas > 1 Then
For I = 2 To filas
Buscar1 = CartolaCli.Range("I" & I)
Buscar2 = CartolaCli.Range("C" & I)
Buscar3 = CartolaCli.Range("Q" & I)
If CDate(UserForm1.Fact1.List(UserForm1.Fact1.ListIndex, 0)) = Buscar1 And _
UCase(Buscar2) = "DF" And CartolaCli.Range("Q" & I) = UserForm1.Cuenta.Caption Then
.AddItem
.List(.ListCount - 1, 0) = CartolaCli.Range("Q" & I)
.List(.ListCount - 1, 1) = CartolaCli.Range("C" & I)
.List(.ListCount - 1, 2) = CartolaCli.Range("D" & I)
.List(.ListCount - 1, 3) = Format(CartolaCli.Range("J" & I), "##,##0")
.List(.ListCount - 1, 4) = CartolaCli.Range("I" & I)
.List(.ListCount - 1, 5) = CartolaCli.Range("K" & I)
UserForm2.Cuenta_Cli.Caption = UserForm1.Cuenta.Caption
UserForm2.RazonSocial_Cli.Caption = UserForm1.RazonSocial.Caption
End If
Next
UserForm2.Total_Reg.Caption = .ListCount
End If
End With
End Sub


Tema: ¡Solucionado!

solucion-final
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