Formules pour classement

maval

XLDnaute Barbatruc
Bonjour

Je rencontre un problème qui me paraissait simple à résoudre mais je ne parviens pas à trouver la solution et l'explication sur ce forum.
Sur mon classeur j'ai des feuilles dans laquelle apparait une feuille "1erTours", dans les colonnes, des N° d’équipes, des noms et des points.
J'aimerai récupéré ces valeurs sur la feuille "Classement"
ci joint mon fichier explicatif

Merci d'avance à ceux qui prendront la peine de m'aider

Cordialement
Maval
 

Pièces jointes

  • Classeur5.xlsm
    14.7 KB · Affichages: 60
  • Classeur5.xlsm
    14.7 KB · Affichages: 68
  • Classeur5.xlsm
    14.7 KB · Affichages: 62

maval

XLDnaute Barbatruc
Re : Formules pour classement

Re Job

Regarde je pense que l'on parle pas de la même chose.
Quand je parle de trie c'est le résultat des deux, trois ou quatre parties est du plus grand vers le plus petit?

Je joint mon fichier

@+
 

Pièces jointes

  • Classeur51.xlsm
    118.7 KB · Affichages: 42

job75

XLDnaute Barbatruc
Re : Formules pour classement

Re,

Bon maintenant c'est clair, alors il suffit d'insérer une colonne auxiliaire pour faire le classement :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n As Integer, w As Worksheet
n = Val(Sh.Name) - 1
If n < 1 Then Exit Sub
Application.ScreenUpdating = False
If Application.Count(Sh.[G3:G200].Offset(, n)) = 0 Then
  For Each w In Worksheets
    If Val(w.Name) = n Then w.Cells.Copy Sh.[A1]: Exit For
  Next
  Sh.[A1].Copy Sh.[A1] 'vide le presse-papier
End If
'---classement---
Sh.[K:K].Insert 'insère une colonne auxiliaire
Sh.[K3:K200].FormulaR1C1 = "=SUM(RC7:RC10)"
Sh.[B3:K200].Sort Sh.[K3], xlDescending, Header:=xlNo
Sh.[K:K].Delete 'supprime colonne auxiliaire
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Formules pour classement

Re,

En général toutes les parties ne sont pas encore jouées.

Il paraît donc plus judicieux d'utiliser la fonction MOYENNE (AVERAGE) pour faire le classement :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n As Integer, w As Worksheet
n = Val(Sh.Name) - 1
If n < 1 Then Exit Sub
Application.ScreenUpdating = False
If Application.Count(Sh.[G3:G200].Offset(, n)) = 0 Then
  For Each w In Worksheets
    If Val(w.Name) = n Then w.Cells.Copy Sh.[A1]: Exit For
  Next
  Sh.[A1].Copy Sh.[A1] 'vide le presse-papier
End If
'---classement---
Sh.[K:K].Insert 'insère une colonne auxiliaire
Sh.[K3:K200].FormulaR1C1 = "=IF(COUNT(RC7:RC10),AVERAGE(RC7:RC10),0)"
Sh.[B3:K200].Sort Sh.[K3], xlDescending, Header:=xlNo
Sh.[K:K].Delete 'supprime la colonne auxiliaire
End Sub
A+
 

maval

XLDnaute Barbatruc
Re : Formules pour classement

Bonjour Job

Moi je veut tous se que l'on veut, mais la je n'y arrive pas.
J'ai bien vue que la macro dit la plage RC7:RC10 mais j'aimerai que tu prenne cinq minutes avec le fichier du post#18 et regarder ou j'ai fait l'erreur car la je perd le nord?

Merci et bonne journée

Max
 

job75

XLDnaute Barbatruc
Re : Formules pour classement

Bonjour maval, le forum,

1) Il est mieux de trier les feuilles quand on les quitte.

Donc avec cette macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'---classement---
If Val(Sh.Name) = 0 Then Exit Sub
'la colonne F est utilsée pour le calcul
Sh.[F3:F200].FormulaR1C1 = "=SUM(RC7:RC10)"
Sh.[B3:J200].Sort Sh.[F3], xlDescending, Header:=xlNo
Sh.[F3:F200].ClearContents
End Sub
2) Pour le calcul de la feuille Classement j'ai aussi placé le code dans ThisWorkbook.

Bien comprendre que le calcul se fait toujours à partir de la 4ème feuille.

Nota important : ne pas mettre de boutons dans les feuilles sinon ils sont copiés à chaque fois qu'on active une des 4 feuilles sans nouveaux points.

Fichier joint.

A+
 

Pièces jointes

  • Classement(1).xls
    67 KB · Affichages: 32
  • Classement(1).xls
    67 KB · Affichages: 32
  • Classement(1).xls
    67 KB · Affichages: 31

maval

XLDnaute Barbatruc
Re : Formules pour classement

Bonjour Job

Sa fonctionne Nickel...
Rien avoir avec les autres code.

Mais pourquoi alors il copie les bouton à chaque fois qu'on active une des 4 feuilles?

Y a t-il pas une solution?

Merci beaucoup et bonne journée

@+
Max
 

Discussions similaires

Réponses
7
Affichages
293

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote