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
| Private Sub CommandButton12_click()
Dim a, b, feuille
Set feuille = Sheets("CLASSEMENT")
Set a = feuille.Range("A2:G" & f.[A65000].End(xlUp).Row).Value
b = FiltreArrayCléColRécup(a, "Case 1", 615, Array(615, 4, 5, 6, 10, 11, 12, 17, 14))
[p2].Resize(UBound(b), UBound(b, 2)) = b
b = Me.ListBox4.List
End Sub
Function FiltreArrayCléColRécup(Tbl, clé, colClé, colRécup)
Dim n, d As Object, c, i, k
n = 0
Set d = CreateObject("scripting.dictionary")
For Each c In clé: d(c) = "": Next c
For i = 1 To UBound(Tbl)
If d.Exists(Tbl(i, colClé)) Then n = n + 1
Next i
Dim Tbl2(): ReDim Tbl2(1 To n, LBound(colRécup) To UBound(colRécup))
n = 0
For i = 1 To UBound(Tbl)
If d.Exists(Tbl(i, colClé)) Then
n = n + 1
For k = LBound(colRécup) To UBound(colRécup): Tbl2(n, k) = Tbl(i, colRécup(k)): Next k
End If
Next i
If n > 0 Then FiltreArrayCléColRécup = Tbl2
End Function |
Partager