Sub QuickSortColonnes(arr As Variant, ByVal low As Long, ByVal high As Long) 'Quick sort décroissant ligne 2 croissant ligne 1
    Dim i As Long, j As Long
    Dim pivot1 As Variant, pivot2 As Variant
    Dim tmp1 As Variant, tmp2 As Variant
    i = low
    j = high
    pivot1 = arr(2, (low + high) \ 2) ' valeur
    pivot2 = arr(1, (low + high) \ 2) ' n° d'origine
    Do While i <= j
        Do While Comparer(arr(2, i), arr(1, i), pivot1, pivot2) < 0
            i = i + 1
        Loop
        Do While Comparer(arr(2, j), arr(1, j), pivot1, pivot2) > 0
            j = j - 1
        Loop
        If i <= j Then
            ' Échanger les deux colonnes i et j (les deux lignes)
            tmp1 = arr(1, i): tmp2 = arr(2, i)
            arr(1, i) = arr(1, j): arr(2, i) = arr(2, j)
            arr(1, j) = tmp1: arr(2, j) = tmp2
            i = i + 1
            j = j - 1
        End If
    Loop
    If low < j Then QuickSortColonnes arr, low, j
    If i < high Then QuickSortColonnes arr, i, high
    
End Sub
Function Comparer(v1 As Variant, k1 As Variant, v2 As Variant, k2 As Variant) As Long
    ' Compare les valeurs principales (v1, v2), puis secondaire (k1, k2)
     Select Case True
          Case IsEmpty(v1)
               Comparer = Abs(Not IsEmpty(v2))
          Case Else
               Select Case True
                    Case IsEmpty(v2)
                         Comparer = -1
                    Case Else
                         Select Case v1 - v2
                              Case 0
                                   If k1 < k2 Then
                                       Comparer = -1
                                   ElseIf k1 > k2 Then
                                       Comparer = 1
                                   Else
                                       Comparer = 0
                                   End If
                              Case Is < 0
                                    Comparer = 1
                              Case Is > 0
                                   Comparer = -1
                         End Select
               End Select
     End Select
End Function