Mostrar en textbox registro con la fecha más reciente

Tengo un formulario que me permite registrar ventas en HOJA1 y lo que necesito es que me permita hacer una búsqueda de la ultima compra que tuvo determinado cliente basándose en el numero de cliente que esta en la columna A
Tengo 3 textbox que necesito que se llenen con esa información
1 - Nombre del Cliente que esta en la columna B de la HOJA1
2 - Fecha de Compra que esta en columna C de la HOJA1 (debe ser la más reciente porque puede tener más de una compra)
3 - Monto de la compra que esta en la columna DE de la HOJA1 (debe coincidir con la fecha de la columna C)
Y todo esto se realiza desde un botón de buscar que ya tengo.

1

1 respuesta

Respuesta
2

Pon el siguiente código en tu botón de buscar.

En el textbox1 pon el número de cliente

En textbox2 quedará el nombre

En textbox3 quedará la fecha

En textbox4 quedará el importe

Private Sub CommandButton1_Click()
'Buscar
    'Por.Dante Amor
    '
    If TextBox1 = "" Then
        MsgBox "Captura número de cliente"
        Exit Sub
    End If
    '
    wmax = 0
    If IsNumeric(TextBox1) Then num = Val(TextBox1) Else num = TextBox1
    Set r = Columns("A")
    Set b = r.Columns("A").Find(num, LookAt:=xlWhole)
    If Not b Is Nothing Then
        celda = b.Address
        Do
            'detalle
            If Cells(b.Row, "C") > wmax Then
                wmax = Cells(b.Row, "C")
                fila = b.Row
            End If
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> celda
        '
        TextBox2 = Cells(fila, "B")
        TextBox3 = Cells(fila, "C")
        TextBox4 = Cells(fila, "D")
    Else
        MsgBox "El número del cliente no existe"
    End If
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquie

Gracias ha funcionado a la perfección... solo... estoy tratando de adaptarlo también a otro libro que tengo solo que ahora la columna de búsqueda es la C, las colmunas a traer ahora son las J, K y L pero los datos están en la hoja4 y no puedo cambiar de nombre la hoja por que tendría que modificar todo el código que tengo en ese libro. Logre hacer que la búsqueda se haga en la columna C pero lo sigue buscando en la hoja1 me ayudas por favor con ese dato.

Muchas Gracias

Prueba con lo siguiente:

Private Sub CommandButton1_Click()
'Buscar
    'Por.Dante Amor
    '
    set h = sheets("Hoja4")
    If TextBox1 = "" Then
        MsgBox "Captura número de cliente"
        Exit Sub
    End If
    '
    wmax = 0
    If IsNumeric(TextBox1) Then num = Val(TextBox1) Else num = TextBox1
    Set r = h.Columns("C")
    Set b = r.Find(num, LookAt:=xlWhole)
    If Not b Is Nothing Then
        celda = b.Address
        Do
            'detalle
            If h.Cells(b.Row, "C") > wmax Then
                wmax = h.Cells(b.Row, "C")
                fila = b.Row
            End If
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> celda
        '
        TextBox2 = h.Cells(fila, "B")
        TextBox3 = h.Cells(fila, "C")
        TextBox4 = h.Cells(fila, "D")
    Else
        MsgBox "El número del cliente no existe"
    End If
End Sub

sal u dos

Muchas gracias por tomarte el tiempo, te cuento que aunque funciona para traerme la información de la hoja y columnas que necesito no me esta trayendo los datos más recientes si no que esta tomando la primera que encuentra y por ende viene siendo la más antigua.

La macro funciona para obtener el dato de fecha más reciente.

Tendría que revisar qué cambios le hiciste a la macro y cómo están tus datos.

Crea una nueva pregunta con los ejemplos de tu hoja para revisarlo.

¡Gracias! 

Mi error, no estaba cambiando la columna que valida la fecha.

Muchas gracias por compartir tus conocimientos.

Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas