TRI puis CLASSEMENT sans doublon

  • Initiateur de la discussion Olivier
  • Date de début
O

Olivier

Guest
Bonsoir a vous tous
je souhaite classer plusieurs colonne Apres un tri Moa ma donné une macro mais je voudrais avoir une suite a ce petit programme je vous joint le prog de Moa puis en feuille 2 ce que je voudrais comme résultat avec le système de moa qui me permet en un seul clic de trier toutes les cellules ce qui est super il y a plus simple pour classer avec l'attribut RANG mais lorsque j'ai des doublons je passe du classement 2eme à 7eme il n'y a pas de 3.4.5 et 6eme donc probleme
merci a vous tous pour votre aide
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Si tu veux obtenir 1, 2, 3, 3, 4 au lieu de 1, 2, 3, 3, 5, tu peux essayer cette formule

Tes points de A2 à A10
=SOMME(SI($A$2:$A$10>=$A2;1/NB.SI($A$2:$A$10;$A$2:$A$10)))
Formule matricielle, à valider par ctrl, maj et entrée
Si les 3 premiers sont ex aequo, le suivant est 2ème et non 4ème.
C'est ça ?

Cette formule te renvoie le nb de valeurs uniques égales ou supérieures à A2
 
E

Eric du Québec

Guest
1- effacer la letter au dessus de tes données
2- positioner le curseur dans une des liste de données
3- exécuter la macro suivante


Sub Tri_Olivier()
'
Selection.CurrentRegion.Select
Names.Add Name:=vFeuille & 'Data_list', RefersToR1C1:=Selection


vNBLigne = Selection.Rows.Count
vNbColonne = Selection.Columns.Count
vPremiereLigne = Selection.Row
vDeuxiemeLigne = vPremiereLigne + 1
vderniereLigne = vPremiereLigne + vNBLigne - 1
vpremierecolonne = Selection.Column
vDerniereColonne = vpremierecolonne + vNbColonne - 1


Selection.Sort Key1:=Cells(vPremiereLigne, vpremierecolonne), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

vRang = 0

For x = vPremiereLigne To vderniereLigne
If Cells(x - 1, vpremierecolonne) <> Cells(x, vpremierecolonne) Then
vRang = vRang + 1
End If

Cells(x, vpremierecolonne + 2) = vRang
Next x

Selection.CurrentRegion.Select
Selection.Sort Key1:=Cells(vPremiereLigne, vpremierecolonne + 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub
 

Monique

Nous a quitté
Repose en paix
Re,

Cette formule, tu l'adaptes à ton fichier.
J'ai à peine regardé ton fichier,
c'est à ton message de 16 h 53 que je réponds
Tu veux 1, 2, 3, 3 ,4 quand la fonction Rang() te renvoie 1, 2, 3, 3, 5

Tu prends une feuille quelconque d'un fichier quelconque,
tu tapes des points quelconques en A2:A10
tu colles cette formule en B2 :
=SOMME(SI($A$2:$A$10>=$A2;1/NB.SI($A$2:$A$10;$A$2:$A$10)))
tu valides en appuyant simultanément sur ctrl, maj et entrée,
tu fais un copié-collé jusqu'à B10
et tu regardes si ça te va.
 

Bebere

XLDnaute Barbatruc
bonjour
voir macro TriAbc
excuses,j'ai fait quelques corrections
au revoir [file name=QUESTION_20050526200214.zip size=13339]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/QUESTION_20050526200214.zip[/file]
 

Pièces jointes

  • QUESTION_20050526200214.zip
    13 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
314 222
Messages
2 107 469
Membres
109 836
dernier inscrit
SophieL16