Te anexo la macro
Private Sub txtbuscar_Change()
'Por Dante Amor
Lb_buscar.Clear
Lb_buscar.ColumnCount = 8
Lb_buscar.ColumnWidths = "60;100;90;110;120;130;100"
Set ht = Sheets("Temp")
ht.Cells.Clear
Hoja3.Columns(1).Copy ht.Range("A1")
u3 = Hoja3.Range("A" & Rows.Count).End(xlUp).Row
ut = ht.Range("A" & Rows.Count).End(xlUp).Row
ht.Range("A1:A" & ut).RemoveDuplicates Columns:=1, Header:=xlYes
ut = ht.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To ut
codigo = ht.Cells(i, "A").Value
cuenta = WorksheetFunction.CountIf(Hoja3.Range("A2:A" & u3), codigo)
Set b = Hoja3.Columns("A").Find(codigo, lookat:=xlWhole)
fila = b.Row
Lb_buscar.AddItem codigo 'codigo
If cuenta = 1 Then
Lb_buscar.List(Lb_buscar.ListCount - 1, 1) = Hoja3.Cells(fila, "P").Value 'tot km
Lb_buscar.List(Lb_buscar.ListCount - 1, 2) = 5000 + Hoja3.Cells(fila, "P").Value 'prox mant
Lb_buscar.List(Lb_buscar.ListCount - 1, 3) = 5000 'faltan
'
Else
inicial = Hoja3.Cells(fila, "P").Value
wsuma = WorksheetFunction.SumIf(Hoja3.Range("A2:A" & u3), codigo, Hoja3.Range("P2:P" & u3))
faltan = 5000 - (wsuma - inicial)
Lb_buscar.List(Lb_buscar.ListCount - 1, 1) = wsuma 'tot km
Lb_buscar.List(Lb_buscar.ListCount - 1, 2) = inicial + 5000 'prox mant
Lb_buscar.List(Lb_buscar.ListCount - 1, 3) = faltan 'faltan
'
Set b = Hoja3.Columns("A").Find(codigo, lookat:=xlWhole, SearchDirection:=xlPrevious)
fila = b.Row
End If
Lb_buscar.List(Lb_buscar.ListCount - 1, 4) = Format(Hoja3.Cells(fila, "R").Value, "short date")
Lb_buscar.List(Lb_buscar.ListCount - 1, 5) = Hoja3.Cells(fila, "Q").Value
Lb_buscar.List(Lb_buscar.ListCount - 1, 6) = 365 + Hoja3.Cells(fila, "Q").Value
Lb_buscar.List(Lb_buscar.ListCount - 1, 7) = (365 + Hoja3.Cells(fila, "Q").Value) - Date
Next
End Sub
[Sal u dos