Buscar datos con un criterio en otra base de datos en un UserForm dentro de excel

En esta ocasión mi problema es que adaptando un código anterior, me encontré con la sorpresa que me falta insertar unas lineas más, ya he tratado por mi cuenta, pero por más vueltas que le doy no encuentro el apropiado. Este es el código que ya tengo, gracias a la ayuda de DANTE AMOR:

Sub LOADLISTBOXINBOOK()
  lst_LLP.Clear
   Set H = Sheets("DETALLE DE PRESTAMOS.exe")
    Set R = H.Columns("C")
     Set B = R.Find(CDbl(cbm_DL), LOOKAT:=xlWhole)
        If Not B Is Nothing Then
        NCELL = B.Address
        Do
        lst_LLP.AddItem H.Cells(B.Row, "A")
            lst_LLP.List(lst_LLP.ListCount - 1, 1) = H.Cells(B.Row, "H")
            lst_LLP.List(lst_LLP.ListCount - 1, 2) = H.Cells(B.Row, "K")
            lst_LLP.List(lst_LLP.ListCount - 1, 3) = H.Cells(B.Row, "M")
            lst_LLP.List(lst_LLP.ListCount - 1, 4) = H.Cells(B.Row, "N")
            Set B = R.FindNext(B)
            Loop While Not B Is Nothing And B.Address <> NCELL
        End If
End Sub

El problema está en que en la Hoja DETALLE DE PRESTAMOS.exe no aparece el Código correspondiente al ítem, el código se encuentra en la hoja INVENTARIO, por lo que al ejecutar el código me arroja el error NO COINCIDEN LOS TIPOS.

Respuesta
1

H o l a:

El error es porque esta variable "cbm_DL" tienes un texto, entonces con CDBL(cbm_DL) quieres convertir un texto a número, por eso te envía el error.


Solamente tienes que poner esto:

Set B = R.Find(cbm_DL, LOOKAT:=xlWhole)

Si no encuentra el dato en la hoja H, entonces puedes enviar un error:

Sub LOADLISTBOXINBOOK()
    lst_LLP.Clear
    Set H = Sheets("DETALLE DE PRESTAMOS.exe")
    Set R = H.Columns("C")
    Set B = R.Find(cbm_DL, LOOKAT:=xlWhole)
    If Not B Is Nothing Then
        NCELL = B.Address
        Do
            lst_LLP.AddItem H.Cells(B.Row, "A")
            lst_LLP.List(lst_LLP.ListCount - 1, 1) = H.Cells(B.Row, "H")
            lst_LLP.List(lst_LLP.ListCount - 1, 2) = H.Cells(B.Row, "K")
            lst_LLP.List(lst_LLP.ListCount - 1, 3) = H.Cells(B.Row, "M")
            lst_LLP.List(lst_LLP.ListCount - 1, 4) = H.Cells(B.Row, "N")
            Set B = R.FindNext(B)
        Loop While Not B Is Nothing And B.Address <> NCELL
    Else
        MsgBox "El dato no existe"
    End If
End Sub

Revisa que estés buscando con el combo apropiado en la columna y hoja apropiadas.


':)
S a l u d o s . D a n t e A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas