tri automatique croissant

  • Initiateur de la discussion Initiateur de la discussion laro76
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laro76

XLDnaute Nouveau
Bonjour tous et toutes c'est encore moi 🙂

Alors voila mon problême qui n'en est pas un juste je pense un peu de faineantise.
Je voudrais si c'est possible que les nombres se tri sans avoir besoin de faire donnés trier et que cela change si je change les valeurs. Les tris se font en C1, C2 C3, etc..
les tris doivent se faire en ordre croissant

Merci a vous
le tableau excel se trouve ici
 
Re : tri automatique croissant

Bonjour hoerwind et merci a toi de m'aider normalement c'est un fichier de stats les chiffres de la colonne C sont normalement avant le tri de 1 a 20 car les chiffres de la colonne D viennent de stat (ce sont des stats de course de chevaux).
Croissant et décroissant pourquoi ? parce que en course de Plat c'est décroissant qu'il faut prendre et en course d'attelé c'est croissant donc si il y a une feuille tri croissant et une feuille tri décroissant ce n'est pas genant car je l'integrerait a mon fichier.
Jai essayer grandevaleur et petitevaleur le tri se fait bien en auto mais le probleme c'ets que cela me renvoie la valeur de la colonne D et comme tu voit dans mon exemple sur mon fichier il faut que cela me donne en 1 et 2 les chiffres de la colonne C triés d'apres les stats de la colonne D
J'ai du mal a expliquer ce que je veut as tu compris ????
 
Re : tri automatique croissant

Hello tous.

Je crois bien que j'ai à peu près saisis l'idée.

Cependant, j'aimerais bien savoir ce que tu fais des valeurs identiques dans la colonne D... Dans le tri, il y a 3 et 3 dans la colonne D. Il faut les traiter comment ?? (Lequel sera au dessus en tri croissant et lequel en dessous ?? )

Sinon pour essayer d'expliquer avec mes mots :
Le but de l'exercice est de trier les colonnes en automatique (plus de clic sur le tri)

Il faut afficher la colonne C, par ordre croissant/decroissant des valeurs correspondante en colonne D.

En esperant aider.

PS : Ce que je pense être une solution en Vba :

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    
    Dim i, j As Integer
    
    Range("$F$7:$G$26").Value = Range("$C$7:$D$26").Value
    Range("$I$7:$J$26").Value = Range("$C$7:$D$26").Value
    
    For i = 7 To 26
        For j = i To 26
            If Cells(j, 7).Value < Cells(i, 7).Value Then
                Range("$C$28:$D$28").Value = Range(Cells(j, 6), Cells(j, 7)).Value
                Range(Cells(j, 6), Cells(j, 7)).Value = Range(Cells(i, 6), Cells(i, 7)).Value
                Range(Cells(i, 6), Cells(i, 7)).Value = Range("$C$28:$D$28").Value
            End If
            If Cells(j, 10).Value > Cells(i, 10).Value Then
                Range("$C$28:$D$28").Value = Range(Cells(j, 9), Cells(j, 10)).Value
                Range(Cells(j, 9), Cells(j, 10)).Value = Range(Cells(i, 9), Cells(i, 10)).Value
                Range(Cells(i, 9), Cells(i, 10)).Value = Range("$C$28:$D$28").Value
            End If
        Next j
    Next i
    
    
    Range("$C$28:$D$28").Value = ""
      
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 

Pièces jointes

Dernière édition:
Re : tri automatique croissant

Hello tous.

Je crois bien que j'ai à peu près saisis l'idée.

Cependant, j'aimerais bien savoir ce que tu fais des valeurs identiques dans la colonne D... Dans le tri, il y a 3 et 3 dans la colonne D. Il faut les traiter comment ?? (Lequel sera au dessus en tri croissant et lequel en dessous ?? )

Sinon pour essayer d'expliquer avec mes mots :
Le but de l'exercice est de trier les colonnes en automatique (plus de clic sur le tri)

Il faut afficher la colonne C, par ordre croissant/decroissant des valeurs correspondante en colonne D.

En esperant aider.




PS : Ce que je pense être une solution en Vba :

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    
    Dim i, j As Integer
    
    Range("$F$7:$G$26").Value = Range("$C$7:$D$26").Value
    Range("$I$7:$J$26").Value = Range("$C$7:$D$26").Value
    
    For i = 7 To 26
        For j = i To 26
            If Cells(j, 7).Value < Cells(i, 7).Value Then
                Range("$C$28:$D$28").Value = Range(Cells(j, 6), Cells(j, 7)).Value
                Range(Cells(j, 6), Cells(j, 7)).Value = Range(Cells(i, 6), Cells(i, 7)).Value
                Range(Cells(i, 6), Cells(i, 7)).Value = Range("$C$28:$D$28").Value
            End If
            If Cells(j, 10).Value > Cells(i, 10).Value Then
                Range("$C$28:$D$28").Value = Range(Cells(j, 9), Cells(j, 10)).Value
                Range(Cells(j, 9), Cells(j, 10)).Value = Range(Cells(i, 9), Cells(i, 10)).Value
                Range(Cells(i, 9), Cells(i, 10)).Value = Range("$C$28:$D$28").Value
            End If
        Next j
    Next i
    
    
    Range("$C$28:$D$28").Value = ""
      
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

Super exactement ce que je voulais c'est vraiment super de pouvoir compter sur vous pour des gros problemes comme cale merci a tout ceux qui ont participer

Je vous tiendrais au courant si mon tableau peut engendrer des benefices

Amicalement Laro76
 
Re : tri automatique croissant

Bonjour tous encore un petit probleme liloucmoi la colonne C dedans il y auras la formule = cellule de tel autre page. Quand je le fait et que je change le valeurs de l autre page je suis obliger de faire recopier incrementée sinon le tri ne se fait pas. exemple si on change un evaleu dans partant si on ne fait pas copier incrementer rien ne bouge. Aurait tu une solution je te met le fichier un peu gros mais je suis obliger pour la comprehension
L'adresse ou la telecharger elle fait 1,84 mo




Merci a vous tous
 
Dernière édition:
Re : tri automatique croissant

Bonjour laro76,

Rajoute ceci (toujours sur dans le code de la feuille) :

Code:
Private Sub Worksheet_Activate()
    Dim plage As Range
    Set plage = Range("$A$1")
    Call Worksheet_Change(plage)
End Sub

Comme ceci, il va faire le tri à chaque fois que tu va activer la feuille.

Lilou
 
Re : tri automatique croissant

Bonjour Laro76,

Ci joint la feuille concernée par la macro.

Regarde dans le module1, j'ai rajouté une macro à utiliser après chaque débeugage.

Code:
Sub RelancerEvents()
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

Tu as juste à supprimer tout le code de la feuille C1 dans ton tableau et à prendre celui du mien à la place.

Dis moi si c'est un peu lent, chez moi ca l'est des fois, mais je sais pas si je pourrais t'aider 😉

++
Lilou
 

Pièces jointes

Re : tri automatique croissant

Bonjour liloucmoi


Ca marche impec merci beaucoup. le seul bleme qu'il reste c'est que jai 9 pages de tris decroissant et que quand je change les valeur je suis obliger de cliquer sur les 9 pages pour que le tris se fasse mais bon apres ca se fait tout seul. si ta le temps jette un coup d'oeil sinon ce n'est pas grave merci encore bonne soirée
 
Re : tri automatique croissant

Hello

Bonjour liloucmoi


Ca marche impec merci beaucoup. le seul bleme qu'il reste c'est que jai 9 pages de tris decroissant et que quand je change les valeur je suis obliger de cliquer sur les 9 pages pour que le tris se fasse mais bon apres ca se fait tout seul. si ta le temps jette un coup d'oeil sinon ce n'est pas grave merci encore bonne soirée

Heureux de voir que ca correspond ! 😀

Essaie de rajouter ce code, dans chaque feuille ou tu modifies/entre des données triées ailleurs :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    Dim f As Worksheet
    Set f = ActiveSheet
    
    For i = 1 To 2
        Sheets("C" & i).Activate
    Next i
    
    f.Activate

End Sub

N'oublies pas de faire varier le i pour chacune des pages Ci que tu tries. (de 1 à 9 si j'ai tout compris ! )

++
 
Re : tri automatique croissant

Reuh,

Regarde comme ceci 😉

J'ai rajouté dans la feuille Jockey, car à priori c'est une feuille ou tu as des données source.
Rajoute le bout de code dans chacune des feuilles ou tu as des données source.

Ensuite, lance la macro RelancerEvents () au cas ou.

Pour finir, si tu as renommer les feuilles C1 ... C9, il faut changer le code à cet endroit ci :
Code:
Sheets("C" & i).Activate

Chez moi ça marche.

++
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
749
Réponses
10
Affichages
878
  • Suggestion Suggestion
Recherche & référence DicoCountOrder
Réponses
0
Affichages
2 K
Retour