XL 2019 Trier uniquement certaines colonnes d'un tableau

olivieroma

XLDnaute Nouveau
Bonjour le Forum et très bonne année à tous.

J'ai une petite problématique, j'ai un fichier avec une première colonne qui serait le nom d'un produit. Dans les colonnes suivantes, j'ai des prix de vente par mois.
Je cherche à créer ensuite un classement par mois.
Pour le premier mois, j'ai utilisé le fonction TRIE et pris les deux premières colonnes.
Ensuite je ne sais pas comment ne prendre que la 1ere colonne (libellés) + colonne 2; + colonne 3 ...

J'ai fait un petit exemple en PKJ.

Quelqu'un aurait-il une idée ?

Merci par avance de votre aide.
 

Pièces jointes

  • Fiche formule TRIE.xlsx
    9.8 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonsoir,

Une solution classique avec cette fonction VBA :
VB:
Function TriVBA(BD As Range, Mois As Range, choix)
Dim col As Variant, a, b, c(), i&
col = Application.Match(choix, Mois, 0)
If IsError(col) Then TriVBA = "": Exit Function
a = BD.Columns(col + 1)
b = BD.Columns(1)
tri a, b, 1, UBound(a)
ReDim c(1 To UBound(a), 1 To 2)
For i = 1 To UBound(a)
    c(i, 1) = b(i, 1)
    c(i, 2) = a(i, 1)
Next
TriVBA = c 'matrice
End Function

Sub tri(a, b, gauc, droi) ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2, 1)
g = gauc: d = droi
Do
    Do While a(g, 1) < ref: g = g + 1: Loop
    Do While ref < a(d, 1): d = d - 1: Loop
    If g <= d Then
      temp = a(g, 1): a(g, 1) = a(d, 1): a(d, 1) = temp
      temp = b(g, 1): b(g, 1) = b(d, 1): b(d, 1) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub
A+
 

Pièces jointes

  • Tri VBA.xlsm
    17.8 KB · Affichages: 5

olivieroma

XLDnaute Nouveau
Bonjour à tous,

Merci avec un peu de retard 🙂 j'ai mis quelques jours à m'y mettre !!
Pour le moment j'ai appliqué les formules de JHA notamment car la mise en place des données me convenait bien :
Mois 1 : Libellé - Prix de vente
Mois 2 : Libellé - Prix de vente

Je vais essayer de regarder pour gérer les doublons ensuite.

Par conte, j'ai une autre problématique, est il possible de ne pas afficher ceux qui sont vide ou à 0 ?

Merci encore.
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 273
Membres
103 168
dernier inscrit
isidore33