Bonjour P-A,
ton fichier en retour : https://www.cjoint.com/c/MIufJe5RnZ0
dans ton tableau initial, il n'y avait aucune donnée ; alors pour faire
ton exo, j'ai mis dans ton tableau plusieurs données réelles ; seuls
les temps sont fictifs, sauf pour les deux chiens n° 3 et n° 9.
pour voir les résultats dans ton tableau de droite, fais Ctrl t ; pour
actualiser les résultats, tu devras faire Ctrl t après avoir fait toutes
les modifs nécessaires dans ton tableau de gauche ; mais inutile
d'effacer les anciens résultats (car c'est fait automatiquement).
note bien qu'il n'y a pas de n° 2 car les deux chiens n° 5 et n° 6
sont ex-aequo (c'est selon leur "Temps total").
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
formules utilisées (déjà recopiées jusqu'en ligne 24) :
* en A7 : =SI(B7="";"";N(A6)+1)
ainsi, tu n'as plus besoin de saisir les numéros : ça les mettra
automatiquement quand tu saisiras un nom (en colonne B).
* en H7 : =SI(D7="";"";E7+F7+G7)
* en i7 : =SI(D7="";"";RANG(H7;H$7:H$24;1))
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
code VBA de Module1 (13 lignes) :
Option Explicit
Sub Tri()
If ActiveSheet.Name <> "Débutant" Then Exit Sub
Dim c As Range, m&, d&: m = Rows.Count: Application.ScreenUpdating = 0
d = Cells(m, 11).End(3).Row: If d > 6 Then Range("K7:N" & d) = Empty
d = Cells(m, 2).End(3).Row: If d = 6 Then Exit Sub
Set c = ActiveCell: d = d - 6: [B7].Resize(d, 6).Sort [B7], 1
[B7].Resize(d, 3).Copy: [K7].PasteSpecial -4163
[I7].Resize(d).Copy: [N7].PasteSpecial -4163
[K7].Resize(d, 4).Sort [N7], 1: c.Select
End Sub
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
si besoin, tu peux demander une adaptation ;
à te lire pour avoir ton avis. :)
rhodo