Búsqueda Inteligente con Combobox VBA

Tengo el siguiente código que se lo aplico a un ComboCox, al seleccionar un dato debería completar otros 3 TextBox según la información de cada compañía.

El problema es que cuando selecciono una compañía, esta me da la información de la línea siguiente, se donde esta el error pero no como corregirlo ya que le he hecho varias modificaciones y lo que logro es que se cuelgue Excel.

Private Sub ComboBox2_Click()    Dim ApNom As String    Dim idBusca As String    Dim fila As Integer    Application.ScreenUpdating = False    Sheets("DATOS").Select    fila = 1    ApNom = ComboBox2    Do While idBusca <> ApNom         idBusca = Range("C" & fila).Value         If idBusca = Empty Then            Sheets("DATOS").Select            Exit Do         End If    Loop    fila = fila + 1    ComboBox2 = Range("C" & fila).Value    TxtRif = Range("D" & fila).Value    TxtDireccion = Range("E" & fila).Value    TxtAlicuota = Range("F" & fila).Value    ComboBox2.SetFocus    MENU.ActivateEnd Sub

2 Respuestas

Respuesta
1

Aquí te dejo otra opción de búsqueda:

Private Sub ComboBox2_Click()
Dim ApNom As String
'Dim idBusca As String
'Dim fila As Integer
Dim busco
Application.ScreenUpdating = False
Sheets("DATOS").Select
ApNom = ComboBox2
Set busco = ActiveSheet.Range("A:A").Find(ApNom, LookIn:=xlValues, lookat:=xlWhole)
'si lo encuentra pasa los valores a los textbox
If Not busco Is Nothing Then
'ComboBox2 = Range("C" & fila).Value
TextBox1 = Range("D" & busco.Row).Value
TextBox2 = Range("E" & busco.Row).Value
TextBox3 = Range("F" & busco.Row).Value
'si no encuentra el dato deja los controles vacíos
Else
TextBox1 = "": TextBox2 = "": TextBox3 = ""
End If
ComboBox2. SetFocus
Menu. Activate
End Sub

Hay una línea que inhabilité porque se está ejecutando el clic del combo2 y allí le estás enviando otro dato ... no me pareció correcto, revisa ese detalle.

Tu consulta (que por alguna razón no se lee el código correctamente ... también me suele pasar y ya dejé la consulta a los administradores), se parece bastante a esta otra que acabo de leer y responder.

Quizás te sirva también esa solución.

Buen día. Consulta con un código VBA

Sdos!

Te recuerdo que la consulta sigue abierta... si el tema está resuelto no olvides valorar la respuesta para darlo por cerrado

Sdos!

¡Gracias! Elsa, disculpa que no tuve tiempo hasta ahorita de revisar tus respuestas y siempre tan certeras.

El primer código que me facilitaste primero funciono a la perfección!!!

Saludos

Respuesta

Low cuadros de lista inician en la fila 0 y noen la 1. Prueba colocando la fila 0 en vez de la fila 1. Y me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas