Bonjour Michel_29 et bienvenue sur XLP ,
Bon, moi aussi je ne veux pas rester tout seul dans mon coin. Je vous en prie, prenez moi dans votre équipe même si c'est juste pour couper les citrons à la mi-temps .
Un autre code VBA relativement rapide (0,15 sec. env. sur ma bécane). Le résultat est transformé en TS nommé "MajTarif".
Le code est dans le module de la feuille "Export Inventaire". Cliquez sur le bouton "Hop".
Sub DerniereMAJ()
Dim t, ref, n&, i&, j&, deb#
deb = Timer: Application.ScreenUpdating = False
[k1].CurrentRegion.Clear
t = Intersect([a1].CurrentRegion, Columns("h:i")).Value
For i = 2 To UBound(t): t(i, 1) = IIf(Right(t(i, 1), 4) = "1899", CDate("01/01/1900"), CDate(t(i, 1))): Next i
Range("h1").Resize(UBound(t), UBound(t, 2)) = t
[k1].CurrentRegion.Clear
Columns("a:i").Copy Columns("k:k")
[k1].CurrentRegion.Sort key1:=[L1], order1:=xlAscending, key2:=[r1], order2:=xlDescending, Header:=xlYes, MatchCase:=False
t = [k1].CurrentRegion
n = 2: ref = t(2, 2)
For i = 3 To UBound(t)
If t(i, 2) <> ref Then: n = n + 1: For j = 1 To UBound(t, 2): t(n, j) = t(i, j): Next: ref = t(i, 2)
Next i
[k1].CurrentRegion.Clear
[k1].Resize(n, UBound(t, 2)) = t
Me.ListObjects.Add SourceType:=xlSrcRange, Source:=[k1].CurrentRegion, XlListObjectHasHeaders:=xlYes, TableStyleName:="TableStyleMedium26"
Me.[k1].ListObject.Name = "MajTarif": Me.[k1].ListObject.Range.Borders.LineStyle = xlContinuous
MsgBox Format(n, "#,##0") & " enregistrements restants en " & Format(Timer - deb, "#,##0.00\ sec.")
End Sub