Excel Macros - formulario label que se llene automáticamente al ingresar datos en un textbox

Estoy desarrollando un formulario en VBA excel de las ventas de una empresa, pero quiero que al ingresar el código del cliente (textbox), aparezca automáticamente sus nombres en un label, desde una hoja donde tengo registrados todos los clientes, y si es nuevo que en el label diga "no existe".

He tratado de armarlo pero no he podido, solo tengo la macro para enviar los datos a una hoja excel, por favor ayudenme, gracias de antemano

Option Explicit
Private Sub CommandButton2_Click()
Dim fila As Long
Dim duplicados As Boolean
Dim i As Long

'Obtener la fila disponible
fila = Application.WorksheetFunction.CountA(Range("A:A")) + 2
MsgBox fila
duplicados = False
'Validar si se han ingresado datos duplicados
For i = 8 To fila
If Cells(i, 6).Value = Fcompra.TextBox5.Value Then 'RUC
If Cells(i, 3).Value = Fcompra.TextBox2.Value Then 'TCOMP
If Cells(i, 4).Value = Fcompra.TextBox3.Value Then 'SERIE
If Cells(i, 5).Value = Fcompra.TextBox4.Value Then 'NUMERO
'Se encontraron datos duplicados
MsgBox "Datos duplicados en la fila " & i
duplicados = True
End If
End If
End If
End If
Next i
If Not duplicados Then
'Insertar datos capturados
Cells(fila, 1).Value = Fcompra.TextBox1.Value 'fecha emision
Cells(fila, 3).Value = Fcompra.TextBox2.Value 'tipo comprobante
Cells(fila, 4).Value = Fcompra.TextBox3.Value 'serie
Cells(fila, 5).Value = Fcompra.TextBox4.Value 'numero
Cells(fila, 6).Value = Fcompra.TextBox5.Value 'RUC
Cells(fila, 7).Value = Fcompra.TextBox6.Value 'moneda
Cells(fila, 8).Value = Fcompra.TextBox7.Value 'op1
Cells(fila, 9).Value = Fcompra.TextBox8.Value 'baseop1
Cells(fila, 10).Value = Fcompra.TextBox9.Value 'igvop1
Cells(fila, 11).Value = Fcompra.TextBox10.Value 'op2
Cells(fila, 12).Value = Fcompra.TextBox11.Value 'baseop2
Cells(fila, 13).Value = Fcompra.TextBox12.Value 'igvop2
Cells(fila, 16).Value = Fcompra.TextBox13.Value 'fecha_Anexo
Cells(fila, 17).Value = Fcompra.TextBox14.Value 'serie_anexo
Cells(fila, 18).Value = Fcompra.TextBox15.Value 'numero_anexo
Cells(fila, 21).Value = Fcompra.TextBox16.Value 'F_detrac
If Fcompra.TextBox16.Value <> "" Then
Cells(fila, 20).Value = 1 'cod detrac
End If
Cells(fila, 23).Value = Fcompra.TextBox17.Value 'n_detrac
Cells(fila, 22).Value = Fcompra.TextBox18.Value 'M_detrac
Cells(fila, 22).Value = Fcompra.TextBox19.Value 'm_percep
Cells(fila, 24).Value = Fcompra.TextBox20.Value 'cta_percep
Cells(fila, 14).Value = Fcompra.TextBox21.Value 'cuenta
Cells(fila, 15).Value = Fcompra.TextBox22.Value 'cont_cred
Cells(fila, 25).Value = Fcompra.TextBox23.Value 'glosa
Cells(fila, 26).Value = Fcompra.TextBox24.Value 'observaciones
'Limpiar cajas de texto
Fcompra.TextBox1.Value = ""
Fcompra.TextBox2.Value = ""
Fcompra.TextBox3.Value = ""
Fcompra.TextBox4.Value = ""
Fcompra.TextBox5.Value = ""
Fcompra.TextBox6.Value = ""
Fcompra.TextBox7.Value = ""
Fcompra.TextBox8.Value = ""
Fcompra.TextBox9.Value = ""
Fcompra.TextBox10.Value = ""
Fcompra.TextBox11.Value = ""
Fcompra.TextBox12.Value = ""
Fcompra.TextBox13.Value = ""
Fcompra.TextBox14.Value = ""
Fcompra.TextBox15.Value = ""
Fcompra.TextBox16.Value = ""
Fcompra.TextBox17.Value = ""
Fcompra.TextBox18.Value = ""
Fcompra.TextBox19.Value = ""
Fcompra.TextBox20.Value = ""
Fcompra.TextBox21.Value = ""
Fcompra.TextBox22.Value = ""
Fcompra.TextBox23.Value = ""
Fcompra.TextBox24.Value = ""
'Notificar al usuario
Dim rpta As Integer
rpta = MsgBox("Datos insertados en la fila, Desea Continuar?")
End If
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

2 respuestas

Respuesta
1

Pon el siguiente código en un botón para validar lo captura en el textbox

Nota: El código es un ejemplo, debes poner tus datos reales, nombre de hoja, nombre de textbox, nombre de label, columna donde se busca, etc

Private Sub CommandButton1_Click()
'Buscar código de cliente
    Label1.Caption = ""
    Set h = Sheets("Hoja1")
    If TextBox1.Value = "" Then
        MsgBox "Captura un código de cliente"
        Exit Sub
    End If
    Set b = h.Columns("A").Find(TextBox1.Value, lookat:=xlWhole)
    If Not b Is Nothing Then
        Label1.Caption = h.Cells(b.Row, "B")
    Else
        Label1.Caption = "no existe"
    End If
End Sub

.

.

Estimado Dante, muchas gracias por tu respuesta, pero al ejecutar la macro no se actualiza el label con la información de la hoja de excel

Pero lo que yo te puse es un ejemplo, tienes que adaptarlo a tus datos.

Si me dices todos los datos, te ayudo a adaptar el código.

Eso para empezar.

Cómo funciona, primero tienes que tener un tu userform, un textbox, un label y un commandbutton.

Escribe algo en el textbox, presionas el botón y la macro te va a regresar un resultado. Si encuentra el nombre en la hoja1, en la columna A, te llena el label con el dato de la fila encontrada y la columna B, si no encuentra el nombre te regresa un mensaje.

Si lees la explicación, creo que podrás adaptarlo a tus datos.

De cualquier forma, si tienes dudas de cómo adaptar los datos, entonces envíame tu archivo para adaptar el código.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “carlos llerena

Te faltó poner el commandbutton

Private Sub CommandButton4_Click()
    If TextBox5 = "" Then
        MsgBox "Captura el ruc"
        TextBox5.SetFocus
        Exit Sub
    End If
    ruc = IIf(IsNumeric(TextBox5.Value), Val(TextBox5.Value), TextBox5.Value)
    Set h = Sheets("RUC")
    Set b = h.Columns("A").Find(ruc, lookat:=xlWhole)
    If Not b Is Nothing Then
        Label28.Caption = b.Offset(0, 1)
    Else
        MsgBox "El ruc no existe"
    End If
End Sub
'
Private Sub TextBox5_Change()
    Label28.Caption = ""
End Sub

.

.

Respuesta
1

Carlos Llerena,

Adjunto enlace archivo excel con un ejemplo el desarrollo de tu consulta para su revisión.

Rellena los Textbox automaticamente cuando se ingresa un valor en otro textbox.

Espero que te sirva de ayuda y este acorde a tu necesidad. Cualquier consulta estaré pendiente.

Por favor no olvidar de valorar las respuestas. Muchas gracias!

Formulario Label que se llene automáticamente al ingresar datos en un textbox

ANDER GS

Ander Gracias por ayudarme, la macro funciona bien, pero el cuadro lo ejecuto en una hoja llamada "ventas", y los códigos de los clientes están en otra hoja "ruc", la macro no logro adecuarla para que funcione con datos de un hoja distinta

Carlos Llerena,

Adjunto el archivo modificado para su revisión y adaptación a tus necesidades.

Espero que ahora este acorde a tus necesidades. Cualquier consulta estaré pendiente.

Por favor no olvidar de valorar las respuestas. Muchas Gracias!

Formulario label que se llene automáticamente V2

Ander GS

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas