Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récuperer tris sur Excel

  • Initiateur de la discussion Initiateur de la discussion erohares
  • 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 !

E

erohares

Guest
Bonjour.

J'ai un problème sur Excel en VBA.
J'ai lu la doc (F1), fait pas mal de tests mais je n'arrive toujours pas à trouver sur quelle colonne a été fait un tri.
Je voudrais savoir s'il est possible de récupérer la ou les colonnes sur lesquelles sont faites un tri (par filtre ou par la fonction tri)

Le problème est le suivant : le classeur est dans un état X fixé par l'utilisateur (état variable : avec des filtres ou non, des tris ou non).
L'utilisateur lance une macro qui met le classeur dans un état Y (un tri particulier en général) et je voudrais qu'à la fin de la macro je puisse remettre le classeur à l'état X (que je ne connais pas puisqu'il est variable).
C'est pour ça que je voudrais récupérer les infos des filtres/tris (si possible).


J'ai trouvé comment récupérer les critères de filtres (voir code) mais je ne trouve rien sur les tris 🙁

Code:
Option Explicit
 
Public Sub BalayeFiltre()
    Dim I As Long
    Dim Wks As Worksheet
    Dim FieldStatus() As String
    Dim Critere() 'As String
    Dim Operateur() As Boolean
    Dim Critere2() 'As String
        
    Set Wks = Worksheets(1)
    If Not Wks.AutoFilterMode Then Range("A1").AutoFilter
    
    'tableau pour récuperer l'état (actif ou non) du filtre)
    ReDim FieldStatus(1 To Wks.AutoFilter.Filters.Count)
    'tableaux pour récuperer les critères et état d'operator de chaque colonne
    ReDim Critere(1 To Wks.AutoFilter.Filters.Count)
    ReDim Operateur(1 To Wks.AutoFilter.Filters.Count)
    ReDim Critere2(1 To Wks.AutoFilter.Filters.Count)
    
    'balayage des filtres/colonnes
    With Wks.AutoFilter
        For I = 1 To Wks.AutoFilter.Filters.Count
            If .Filters(I).On = True Then
                FieldStatus(I) = "activé"
                Critere(I) = .Filters(I).Criteria1
                If .Filters(I).Operator Then
                    Operateur(I) = .Filters(I).Operator
                    Critere2(I) = .Filters(I).Criteria2
                Else
                    Operateur(I) = False
                    Critere2(I) = ""
                End If
            Else
                FieldStatus(I) = "désactivé"
            End If
        Next
    End With
End Sub

Grâce aux tableaux, je sais comment sont définis les critères et je peux les remettre comme ils étaient, mais je n'ai rien sur les tris.

Je suis bloqué, j'ai fait la doc en long et en large et je ne trouve rien.
Merci de m'avoir lu, je vous serais très reconnaissant de m'aider.
Bonne journée.
 
Re : Récuperer tris sur Excel

Bonjour,

Peut-être une solution en rajoutant une colonne (cachée éventuellement) avec un ordre de départ (1 à N) sur laquelle re-trier après les manipulations.

A+
 
Re : Récuperer tris sur Excel

Bravo !!!
Tu es le seul à m'avoir apporté une réponse à cette question 🙂
Ce n'est pas la méthode la plus élégante, mais ça a le mérite de fonctionner.

Merci beaucoup.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
40
Affichages
3 K
Réponses
2
Affichages
767
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…