1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
Sub traitement()
Dim i As Long, test1 As String, j As Long, nbl As Long
Dim a As Integer, b As Integer, c As Integer
Dim valeur() As String, mem1 As Long, res As Long, mem2 As String
With UserForm1.ListBox1
nbl = .ListCount
ReDim valeur(nbl, 2)
For i = 1 To nbl
valeur(i, 1) = .List(i - 1)
valeur(i, 2) = False
Next i
.Clear
For i = 1 To nbl
If valeur(i, 2) = False Then
a = InStr(valeur(i, 1), "-")
b = InStr(a + 1, valeur(i, 1), "-")
c = InStr(b + 1, valeur(i, 1), "-")
test1 = LTrim(RTrim(Right(valeur(i, 1), Len(valeur(i, 1)) - c)))
mem1 = 0
For j = 1 To nbl
If InStr(valeur(j, 1), test1) > 0 Then
a = InStr(valeur(j, 1), "-")
b = InStr(a + 1, valeur(j, 1), "-")
If Val(Mid(valeur(j, 1), a + 1, b - 1)) > mem1 Then mem1 = Val(Mid(valeur(j, 1), a + 1, b - a))
End If
Next j
mem2 = "": res = 0
For j = 1 To nbl
If InStr(valeur(j, 1), test1) > 0 Then
a = InStr(valeur(j, 1), "-")
b = InStr(a + 1, valeur(j, 1), "-")
c = InStr(b + 1, valeur(j, 1), "-")
If Val(Mid(valeur(j, 1), a + 1, b - 1)) = mem1 Then
If Mid(valeur(j, 1), b + 1, c - b) > mem2 Then
res = j
mem2 = Mid(valeur(j, 1), b + 1, c - b)
End If
End If
End If
Next j
If res > 0 Then .AddItem valeur(res, 1)
For j = 1 To nbl
If InStr(valeur(j, 1), test1) > 0 Then valeur(j, 2) = True
Next j
End If
Next i
End With
End Sub |
Partager