Classement décroissant sans macro

Résolu
Bonjour,

https://www.cjoint.com/?CJxvCMSWcJO
Sur le fichier, à gauche on retrouve les tableaux non classés. Je voudrais obtenir les tableaux classés par ordre décroissant (sur la droite) sans macro. De plus, je voudrais que ces derniers soient mis à jour automatiquement si on modifie une valeur du tableau de gauche.

Merci d'avance.

4 réponses

  1. Contributeur
    Bonjour,

    Et pourquoi 2 tableaux ?
    Tu ne peux pas mettre un filtre automatique sur les titres, et utiliser la fonction 'tri croissant' du filtre automatique sur B, et 'tri décroissant' sur C ?

    Et si tu veux que certains items restent groupés en bas après le tri croissant fais les débuter par { ou ~ ou |

    eric
    0
    1. Merci de votre aide.
      Dans la feuille j'ai deux tableaux (bleu et vert) et je ne peux pas mettre un filtre pour chacun des tableaux. De plus, lorsque je rajoute une valeur dans un tableau, le classement ne se refait pas automatiquement.
      0
  2. Merci beaucoup ! Après réflexion, j'ai compris ce que vous avez voulu faire avec le code rang. Par contre, je n'ai pas compris la formule dans le tableau de droite :
    INDEX($B$3:$C$29;EQUIV(PETITE.VALEUR($D$3:$D$29;LIGNE()-2);$D$3:$D$29;0);1)

    La formule est de la forme (référence ;n° ligne ;n° colonne ;1)
    Déjà je ne comprends pas ce que représente le 1.

    Ensuite, je ne comprends pas comment on procède avec le n° de ligne, pouvez me détailler l'utilisation de EQUIV(PETITE.VALEUR($D$3:$D$29;LIGNE()-2). Je me suis aperçu que le -2 représente le nombre de lignes au-dessus de la valeur la plus haute de la zone de référence.

    Sinon j'ai réussi à adapter l'ensemble à mon fichier car le fichier que je vous ai joints est un exemple.
    0
    1. Contributeur
      Re

      Le code de base est:

      INDEX(Champ1;N° de ligne; N°de colonne)
      N° de ligne et colonne étant définis par rapport aux références du champ.

      LIGNE() renvoie le N° de ligne (par rapport à la feuille Excel) sur laquelle se trouve la formule.
      vous pouvez tester en entrant la formule =LIGNE() dans une cellule, ça fonctionne aussi avec COLONNE()

      Donc LIGNE()-2 renvoi 1 sur la ligne 3..... (2 sur ligne 4.. ect)

      EQUIV(Valeur ; champ2;0) définit le N° de ligne de champ2 ou se trouve la valeur cherchée

      Donc la formule:

      recherche dans le champ1 INDEX soit B3:C29
      la valeur de la cellule qui se situe sur la ligne trouvée par EQUIV, soit le rang de la petite.valeur de rang LIGNE()-2 dans le champ2 D3:D29
      et dans la colonne spécifiée par;1) final, 1° colonne du champ1 .. 2 pour la 2° colonne ect..

      espèrant avoir été clair

      bonne route

      crdlmnt

      Errare humanum est, perseverare diabolicum
      0