Microsoft 365 Classement de données de colonne par ordre croissant

Lucho63

XLDnaute Nouveau
Bonjour,
Je souhaite classer des données de colonne (par paire) par ordre croissant ?

Exemple:
Sur 6 colonnes j'ai :
1Col: Lapin
2Col: 1
3Col: Chien
4Col: 5
5Col: Chat
6Col: 3
et je veux les transposer par 2 par ordre croissant
Résultats su 6 colonnes
Chien 5 Chat 3 Lapin 1

Merci d'avance
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Un essai en pièce jointe
VB:
=SI(MOD(COLONNE();2)=0;GRANDE.VALEUR(SI(MOD(COLONNE($A$1:$F$1);2)=0;$A$1:$F$1);COLONNE()/2);INDEX($A$1:$F$1;;EQUIV(GRANDE.VALEUR(SI(MOD(COLONNE($A$1:$F$1);2)=0;$A$1:$F$1);(COLONNE()+1)/2);$A$1:$F$1;0)-1))

JHA
 

Pièces jointes

  • Classeur Lucho63.xlsx
    9.2 KB · Affichages: 10

Lucho63

XLDnaute Nouveau
Merci JHA, mais je veux que les données classées soient inscrites à droite comme sur le fichier joint.
Peux-tu me modifier cela ?
Je vois qu'il est inscrit VB au dessus du code, est-ce un code en langage VBA ?
 

Pièces jointes

  • Classeur Lucho63.xlsx
    11.5 KB · Affichages: 4

soan

XLDnaute Barbatruc
Inactif
Bonjour Lucho63, le fil,

Dans ton post #3 : « Je vois qu'il est inscrit VB au dessus du code, est-ce un code en langage VBA ? »

* Le langage de programmation des applications Office est bien le VBA : Visual Basic for Applications.

* Le VB orange que tu as vu est mis par la balise « CODE=vb » ; on l'utilise pour du code VBA, mais c'est pas obligé ; par exemple, certains l'utilisent pour mettre une formule Excel ; et c'est justement le cas dans le post #2 de JHA : c'est bien une formule Excel et pas du VBA ; par exemple, il y a =SI( et pas If ; il y a COLONNE() et pas Column ; il y a MOD(a;b) et pas a Mod b ; il y a GRANDE.VALEUR() qui est une fonction Excel que VBA ne connaît pas ; à toi de trouver les autres indices... 😜

soan
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Les deux solutions proposées ne donne pas le bon résultat en cas d'égalité.
Ci joint une seule formule matricielle qui semble donner un résultat plus cohérent.
En "G1":
VB:
=SI(MOD(COLONNE();2)=0;ENT(GRANDE.VALEUR(SI(MOD(COLONNE($A$1:$F$1);2)=0;$A$1:$F$1+COLONNE($A$1:$F$1)/10^9);(COLONNE()-6)/2));INDEX($A$1:$F$1;;EQUIV(GRANDE.VALEUR(SI(MOD(COLONNE($A$1:$F$1);2)=0;$A$1:$F$1+(COLONNE($A$1:$F$1)/10^9));(COLONNE()-5)/2);$A$1:$F$1+(COLONNE($A$1:$F$1)/10^9);0)-1))
copier vers la droite.

JHA
 

Pièces jointes

  • Classeur Lucho63 (2).xlsx
    10.8 KB · Affichages: 7

Collins

XLDnaute Occasionnel
Bonjour le forum, JHA

Dans la même idée que l'exemple de Lucho, j'essaie de modifier la formule pour l'adapter à mon fichier. j'ai fait un exemple et la formule matricielle est tellement complexe que je suis complètement perdu et incapable de la modifier et l'adapter.
JHA, serait il possible de m'aider ?
Merci
 

Pièces jointes

  • Exemple_050221.xlsx
    11.7 KB · Affichages: 5

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je reconnais la formule n'est pas simple du tout et il y a certainement mieux.
VB:
=SI(MOD(COLONNE();2)=1;GRANDE.VALEUR(SI(MOD(COLONNE($C$12:$J$12);2)=0;$C$12:$J$12+COLONNE($C$12:$J$12)/10^9);(COLONNE()-5)/2);INDEX($C$12:$J$12;;EQUIV(GRANDE.VALEUR(SI(MOD(COLONNE($C$12:$J$12);2)=0;$C$12:$J$12+(COLONNE($C$12:$J$12)/10^9));(COLONNE()-4)/2);$C$12:$J$12+(COLONNE($C$12:$J$12)/10^9);0)-1))

JHA
 

Pièces jointes

  • Exemple_050221.xlsx
    12.5 KB · Affichages: 5

Discussions similaires

Réponses
12
Affichages
242
Réponses
6
Affichages
468

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin