Feuille classement [Résolu]

- - Dernière réponse : michel_m
Messages postés
15938
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 octobre 2019
- 6 juin 2019 à 17:10
Bonjour,

J'ai un tableau de classement de résultats sportifs qui est alimenté par différents autres tableaux.
Quand je rentre des résultats je dois me rendre sur la feuille classement et appuyer sur
un bouton Activx (macro)pour faire le classement.
Je voudrais savoir s'il existe un code qui fasse le classement dés que des données nouvelles sont entrées
dans le tableau,sans être obligé de venir appuyer sur ce bouton classement.
Merci pour votre aide
Cordialement



Configuration: Windows / Firefox 67.0
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
6298
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
405
2
Merci
Bonjour,

avec l’événement Worksheet_SelectionChange de ta feuille, comme ceci

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then 'adapter la colonne de saisie
'le code de classement
End If
End Sub


Dire « Merci » 2

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 65172 internautes nous ont dit merci ce mois-ci

fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
Bonjour cs_Le Pivert, nos réponses se sont croisée mais je presque "fier" d'avoir donné la même que toi !
Commenter la réponse de cs_Le Pivert
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46
1
Merci
Bonjour,
il suffit de changer ton code de place pour qu'il soit affecté à l'événement change de ta feuile plutot qu'au clic de ton bouton :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then ' range à ajuster à ton cas
        'ton code ici
    End If

End Sub


Commenter la réponse de fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46
1
Merci
comme ça, ça devrait aller :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:E")) Is Nothing Then 'adapter la colonne de saisie
    Range("A1:E1").Select
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add2 Key:= _
        Range("E1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.AutoFilter
End If
End Sub


Commenter la réponse de fabien25000
Messages postés
15938
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 octobre 2019
2814
1
Merci
Bonjour,

Un exemple de classement à la volée par formules pour des nombres (à adapter pour des chronos)
https://mon-partage.fr/f/2jOuyjR0/
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
intéressant merci michel
Commenter la réponse de michel_m
0
Merci
Bonjour et merci à tous les 2
j'ai fais un essai mais pas concluant ,je dois me m’emmêler les pinceaux quelque part
un exemple
https://www.cjoint.com/c/IFgnewIfg2k
Amicalement
Commenter la réponse de Nicos
0
Merci
Je ne sais pas si ce que je demande est réalisable
Dés qu'une cellule de la plage E2:E11 se modifie
toute la plage A2/E11 se classe du +petit au +grand
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
c'est ce que fait le code que je t'ai posté à 15h19 post#6
Commenter la réponse de Nicos
0
Merci
j'ai bien mis ton code dans l’onglet de la feuil1
mais quand je rentre un chiffre dans une cellule de la plage A2:E11
le classement ne se fait pas
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
chez moi ça tourne très bien..
tu as bien remplacé
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
par
Private Sub Worksheet_Change(ByVal Target As Range)
?
tes macro sont bien activées?
il n'y a pas de ligne vide dans le champ E2:E11?
Commenter la réponse de Nicos
0
Merci
le fichier avec de modifs de données et le tri
ne se fait pas en colonne E

https://www.cjoint.com/c/IFgoyxruh4k
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
tu n'as pas remplacé
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
par
Private Sub Worksheet_Change(ByVal Target As Range)
.
Commenter la réponse de Nicos
0
Merci
Ok ça fonctionne à peu près je suis obligé de cliquer plusieurs fois sur une cellule
pour que le tri se fasse.
Est-ce normal?
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
ce n'est pas colonne E que ça se joue mais dans les colonnes Points..
remplace ça
If Not Intersect(Target, Range("E:E")) Is Nothing Then

par ça et dis moi si ça te va mieux
If Not Intersect(Target, Range("B:D")) Is Nothing Then
Commenter la réponse de Nicos
0
Merci
Là fabien tu es un dieu
exactement ce que je voulais.
Excuse moi pour l'insistance ,mais je ne suis pas trop doué avec le vba
Merci encore
Bonne continuation
fabien25000
Messages postés
589
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
26 juin 2019
46 -
lol pas tant...
n'oublie pas de passer ton sujet en résolu
bon jeu
michel_m
Messages postés
15938
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 octobre 2019
2814 -
Nicos,
Merci d'avoir dédaigné ma proposition :-((

Avant de penser VBA, penser Excel
Commenter la réponse de Nicos