Filtre tableau multidimension VBA

Bonjour,

Je cherche à trier un tableau de type public à 3 dimensions

Public Tableau
ReDim Tableau(8, 60, 2)

Comment le trier de manière croissante sur la dimension1 (taille8) et décroissante sur la dimension 3 (taille2) stp ?

Mon but est de garder la première colonne dans l'ordre croissant, comme à l'origine, tout en triant la 3e colonne dans l'ordre décroissant

Par exemple si c’était dans une feuille de classeur:

wev

Merci d'avance pour votre aide

Cette macro devrait faire l'affaire si j'ai bien compris le besoin.

Option Explicit

Sub ordreAlpha()
    Dim ordreA() As String, ordreZ() As String, liste() As String
    Dim index As Integer
    Dim min As String, max As String
    Dim i As Integer, j As Integer, nl As Integer

    nl = Sheets("Feuil1").Cells(Columns.Count, 1).End(xlUp).Row ' dernière ligne occupée de la colonne 1 ("A")
    Cells(1, 2) = "Ordre alphabétique"
    Cells(1, 3) = "Ordre alphabétique inverse"

    ReDim ordreA(nl - 2) ' Les tableaux commencent à 1 au lieu de 0
    ReDim ordreZ(nl - 2)
    ReDim liste(nl - 2)

    ' Ordre alphabétique
    For i = 2 To nl
        liste(i - 2) = Cells(i, 1)
    Next i
    For i = 0 To UBound(liste)
        min = "zzzz"
        For j = 0 To UBound(liste)
            If liste(j) < min Then
                min = liste(j)
                index = j
            End If
        Next j
        ordreA(i) = min
        Cells(i + 2, 2) = ordreA(i)
        liste(index) = "zzzz"
    Next i

    ' Ordre alphabétique inverse
    For i = 2 To nl
        liste(i - 2) = Cells(i, 1)
    Next i

    For i = 0 To UBound(liste)
        max = ""
        For j = 0 To UBound(liste)
            If liste(j) > max Then
                max = liste(j)
                index = j
            End If
        Next j
        ordreZ(i) = max
        liste(index) = ""
        Cells(i + 2, 3) = ordreZ(i)
    Next i
End Sub
11ordreaz.xlsm (23.27 Ko)
Rechercher des sujets similaires à "filtre tableau multidimension vba"