Buscar datos en BD según dato en ComboBox

Tengo una pequeña búsqueda que hacer y consiste en que: según el ítem que el usuario
Seleccione de una lista desplegable, el programa deberá ir a buscar ese ítem a una base de
Datos y a partir de allí correr otra macro (De esa me encargare yo). Estuve trabajando con este código...

'If cbxnsubc.ListIndex = -1 Then
'    MsgBox "Debes Selccionar un Subcapitulo"
'    Exit Sub
'End if
Subc = Val(cbxnsubc.----(cbxnsubc.----,0))
Set hj = Sheets("BDusuario(2)")
Set b = hj.Columns("C").Find(Subc, lookat:=xlWhole).Offset(-2, 0)
If
'
'ACA YO COLOCARÍA LA OTRA MACRO
'
Else
    MsgBox "Subcapitulo no encontrado"
End If

pero no me funciona, así que si alguien pudiera ayudarme a hacer la búsqueda se lo agradecería mucho. Para mayor claridad adjuntare unas imágenes de apoyo

Según lo que el usuario seleccione en la lista desplegable "Inserte nombre del SubCapitulo" cuyo nombre es "cbxnsubc"

El programa ira a esta base de datos, buscara ese nombre en la Columna "C" o "Nombre" y mediante offset se ubicara en la Columna "A" o "Código", donde correrá la otra Macro

Espero que lograra hacerme entender, cualquier duda o información adicional se las daré con gusto

1 Respuesta

Respuesta
1

Te anexo el código actualizado.

Dentro del código te puse unas observaciones:

Private Sub CommandButton1_Click()
    If cbxnsubc.ListIndex = -1 Then
        MsgBox "Debes Selccionar un Subcapitulo"
        Exit Sub
    End If
    'Subc = Val(cbxnsubc.----(cbxnsubc.----,0))
    Set hj = Sheets("BDusuario (2)")
    Set b = hj.Columns("C").Find(cbxnsubc.Value, lookat:=xlWhole)
    If Not b Is Nothing Then
        'En el objeto b queda almacenado el resultado.
        'del objeto b puedes obtener la fila, por ejemplo:
        fila = b.Row
        'puedes obtener el código de la columna a, por ejemplo:
        codigo = b.Offset(0, -1)
        'también puedes hacerlo de esta forma, yo lo prefiero así:
        codigo = hj.Cells(fila, "A").Value
        'ACA YO COLOCARÍA LA OTRA MACRO
        '
    Else
        MsgBox "Subcapitulo no encontrado"
    End If
End Sub
'

Quité esta línea, porque no entendí qué estabas haciendo. Pero además no es necesario, ya que en el combo vas a tener texto

    'Subc = Val(cbxnsubc.----(cbxnsubc.----,0))

Hola Dante, muchas gracias por la respuesta, ese código que habías omitido yo lo tenía de esa forma ya que no sabía si debía hacerlo 

cbxnsubc.value ó cbxnsubc.text ó cbxnsubc.list

Pero ahora que me dices que no es necesario no me preocupare más por el. En cuanto al código que me pasaste no me queda muy clara esta parte

'del objeto b puedes obtener la fila, por ejemplo:
        fila = b.Row
        'puedes obtener el código de la columna a, por ejemplo:
        codigo = b.Offset(0, -1)
        'también puedes hacerlo de esta forma, yo lo prefiero así:
        codigo = hj.Cells(fila, "A").Value

Con los comentarios me estas queriendo decir que solo use uno de esos 3 códigos o solo me estas explicando que hace cada uno? 

Te estoy explicando qué hace cada línea. Y te estoy poniendo ejemplos de como utilizar el objeto b

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas