Macro à améliorer
Bonjour,
Je suis un petit nouveau sur ce forum et j'espère obtenir de l'aide de la part d'un excelien plus expert que moi...
Je gère des jeux sur mon site avec 10 réponses... et je classe les joueurs avec une macro. Celle-ci me classe les lignes de 5 à 137 en fonction du total obtenu par les joueurs (colonne B).
Je souhaiterais améliorer cette macro pour qu'elle classe les joueurs en fonction des critères suivants :
1. nombre de points (colonne B)
si ex-aequo...
2. nombre de participations (nbval de colonne C à colonne L)
3. nombre de points au premier jeu (colonne C)
4. nombre de points au 2ème jeu (colonne D)
5. et ainsi de suite jusqu'à la colonne L
La macro actuelle est la suivante :
Sub total()
'
' total Macro
' Macro enregistrée le 03/12/2006 par kelle1
'
' Touche de raccourci du clavier: Ctrl+t
'
Rows("5:137").Select
Selection.Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("N12").Select
ActiveWindow.SmallScroll Down:=-24
End Sub
voir fichier joint si besoin :
https://www.excel-pratique.com/~files/doc2/copie_jeux.zip
Merci d'avance...
Salut le forum
Pour trier commence de la colonne L vers la colonne B
Sub total()
'
' total Macro
' Macro enregistrée le 03/12/2006 par kelle1
'
' Touche de raccourci du clavier: Ctrl+t
Dim x as Byte
For x = 12 To 2 Step -1
Rows("5:137").Sort Key1:=Cells(5, x), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Next x
End Sub
Mytå
Le problème, c'est que notre règlement stipule que les ex-aequo sont départagés d'abord par le nombre de points (logique), ensuite par le nombre de participations, ensuite par leur résultat à la première question, puis la deuxième, etc...
Autre question : le tri ne peut se faire (en utilisant la fonction tri du logiciel) qu'avec 3 critères... est-il possible de règler cette fonction pour avoir davantage de critères lors du tri de données ???
Re le forum
Rajoute la colonne M avec la formule (A recopier vers le bas)
=SI(A5<>"";NBVAL(C5:L5);"")
Ta macro de tri devient
Sub total()
'
' total Macro
' Macro enregistrée le 03/12/2006 par kelle1
'
' Touche de raccourci du clavier: Ctrl+t
Dim x As Integer
For x = 12 To 3 Step -1
Rows("5:137").Sort Key1:=Cells(5, x), Order1:=xlDescending, Header:=xlNo
Next x
Rows("5:137").Sort Key1:=Cells(5, 13), Order1:=xlDescending, Header:=xlNo
Rows("5:137").Sort Key1:=Cells(5, 2), Order1:=xlDescending, Header:=xlNo
End Sub
Mytå
Je viens d'appliquer les éléments de cette solution... et ça fonctionne à merveille !!!
Un grand BRAVO et un grand MERCI !!!
Re le forum
Juste pour simplifie le code
Sub total()
Dim x As Integer
With Rows("5:101")
For x = 12 To 3 Step -1
.Sort Key1:=Cells(5, x), Order1:=xlDescending, Header:=xlNo
Next x
.Sort Key1:=Cells(5, 13), Order1:=xlDescending, Header:=xlNo
.Sort Key1:=Cells(5, 2), Order1:=xlDescending, Header:=xlNo
End With
End Sub
Et change ta formule en C102 si tu veux garder le total par colonne (A recopier vers la droite)
=NBVAL(C$5:C$101)
Mytå