Búsqueda de un dato más antiguo en la misma columna

Necesito llevar un registro de los kilómetros que recorren ciertos vehículos, mi idea inicial es algo así:

Columna A: patente

Columna B: kilometraje inicial

Columna C: kilometraje final

Columna D: diferencia entre C y B para tener el dato de kilometraje por viaje.

La primera vez que ingrese una patente (A), registraré el kilometraje en "kilometraje final"(C), ya que no tendré un "kilometraje inicial" (B) pues es el primer viaje del que llevaré registro. Así registraré diferentes patentes y sus kilometrajes. Cuando vuelva a escribir una patente que ya ha sido registrada (A), me interesaría que el km final que escribí la última vez, se escribiera automáticamente en la celda de la columna "B", para yo escribir el km final (C) que estoy observando en este nuevo viaje y se haga la resta entre ambos.

Dado que escribiré la misma patente muchas veces, necesito que busque el último valor de "kilometraje final" (C) asociado a esa patente y lo arroje como kilometraje inicial del nuevo viaje.

Atenta a su ayuda y

Respuesta

Es para Riccy

Mira que sencillo es en Access.

Tengo una tabla donde guardo las matrículas de los vehículos, y su kilometraje inicial

Y un formulario Kilometrajes basado en la tabla del mismo Nombre, donde voy seleccionando las matrículas y aparte de lo que dices, en Total Vehiculo me va poniendo los kilómetro acumulados por él.

2 respuestas más de otros expertos

Respuesta
3

Puedes poner la siguiente macro en los eventos de tu hoja de captura.

Lo que hace, es revisar en automático si ya existe la patente en la columna, si existe busca el último kilometraje.

Realiza pruebas y dime si hay que cambiar algo:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        u = Target.Row
        Set b = Range("A1:A" & u - 1).Find(Target.Value, SearchDirection:=xlPrevious)
        If Not b Is Nothing Then
            If b.Row < u Then
                Cells(Target.Row, "B") = Cells(b.Row, "C")
                Cells(Target.Row, "C").Select
            End If
        End If
    End If
End Sub

También te anexo mi archivo para que revises el funcionamiento.

https://www.dropbox.com/s/pilccvzqya77qmf/capturar%20ultimo%20kilometraje.xlsm?dl=0 


Saludos. Dante Amor

Si es lo que necesitas.

Dante, muchas gracias por darte el tiempo, descargué tu planilla y no corre, además, al seguir los pasos que me indicas para pegar la macro y presiono el botón de "play" para que se ejecute en mi planilla, me abre de inmediato la ventana para crear una macro.. me imagino que porque no tiene nombre, si escribo un nombre, solo me permite la opción "crear" y al crearla me abre un nuevo módulo vacío. asique no logro ejecutar la macro que me envías, cual es el error que estoy cometiendo?

Pero la macro se ejecuta en automático, no la debes poner en un módulo, ni tampoco con el botón "play".

Tienes que ejecutar la macro en mi planilla, para que se veas el funcionamiento.

Si tienes una planilla tengo que adaptar la macro a tus columnas y datos.

Envíame tu planilla para adaptar la macro.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Camila Paz Rebolledo López
” Y el título de esta pregunta.

¡Gracias! te lo estoy enviando

Te lo envié, Voy a esperar tu respuesta gracias

Esta es la macro actualizada.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 6 Then Exit Sub
        u = Target.Row
        Set b = Range("C6:C" & u - 1).Find(Target.Value, SearchDirection:=xlPrevious)
        If Not b Is Nothing Then
            If b.Row < u Then
                Cells(Target.Row, "E") = Cells(b.Row, "F")
                'Cells(Target.Row, "C").Select
            End If
        End If
    End If
End Sub

Comparte los enlaces en tus redes sociales.

Sal u dos

Respuesta

Me encuentro en la misma situación, ¿lograron resolver el problema?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas