Tri des feuilles dans un classeur

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

Hugues

XLDnaute Impliqué
Bonjour à vous tous,

Suite au rajout d'une feuille dans un classeur, je souhaiterais rajouter à la suite d'un code, le code afin de permettre de selectionner l'ensemble des feuilles du classeur et les classer par ordre croissant en fonction des noms des onglets.

Merci par avance pour votre aide,

Hugues
 
Re : Tri des feuilles dans un classeur

bonjour le fil,

bien que des solutions aient déjà été apportées, je poste la mienne :
Code:
Sub TriFeuilles()
Dim i As Integer, nomFeuilles() As String, j As Integer, tmpStr As String
    With ThisWorkbook
        ReDim nomFeuilles(1 To .Sheets.Count)
        For i = 1 To .Sheets.Count
            nomFeuilles(i) = .Sheets(i).Name
        Next i
        For i = LBound(nomFeuilles) To UBound(nomFeuilles) - 1
            For j = i To UBound(nomFeuilles)
                If nomFeuilles(j) < nomFeuilles(i) Then
                    tmpStr = nomFeuilles(i)
                    nomFeuilles(i) = nomFeuilles(j)
                    nomFeuilles(j) = tmpStr
                End If
            Next j
        Next i
        For i = LBound(nomFeuilles) To UBound(nomFeuilles) - 1
            .Sheets(nomFeuilles(i)).Move before:=.Sheets(i + 1)
        Next i
    End With
End Sub

a+
 
Re : Tri des feuilles dans un classeur

bonjour a tous

une macro de mon cru (pas necessairement meilleure que celles citées precedemment)

Code:
Sub trifeuilles()
Dim x As Integer
Dim mini As String
Dim n As Integer
Application.ScreenUpdating = False
x = Sheets.Count
mini = Sheets(1).Name
While x > 0
  For n = 2 To x
   If Sheets(n).Name < mini Then mini = Sheets(n).Name
  Next n
 Sheets(mini).Move after:=Sheets(Sheets.Count)
 mini = Sheets(1).Name
 x = x - 1
Wend
Application.ScreenUpdating = True
End Sub
 
Re : Tri des feuilles dans un classeur

Bonsoir Et merci à vous

Pierrejean, j'airais une petite suggestion à demander. Le nom des mes onglets commence par 1 chiffre mais aussi contient que des lettres (nom des personnes).
J'aurais souhaité que ce dernier type d'onglet soit aussi trié.
Comment faire pour l'adapter à ton code ?

Merci par avance,

Hugues
 
Re : Tri des feuilles dans un classeur

Bon jour,

Pour essayer d’avoir une réponse.

Avec 2 feuilles, ordre actuel : 1ANAÉ avant 1ANAYS.

Avec la macro de pierrejean 😉 on a toujours 1ANAYS avant 1ANAÉ.
Avec celle de mromain 😉, on a cette réponse quand on part de 1ANAYS 1ANAÉ, mais, on reste avec 1ANAÉ 1ANAYS quand on a cela au départ.

L’ordre dans mes dictionnaires est ANAÉ ANAYS ! Est-il faux ?
 

Pièces jointes

Re : Tri des feuilles dans un classeur

Bonsoir à vous tous,

J'ai analysé le résultat et j'en déduis la règle suivante ;
Le code de Pierrejean hiérarchise les données à trier ; Il va d'abord trier tous les noms commençant par un chiffre, puis priorité au majuscule, puis au final les minuscules.

Je vous joins un exemple de fichier.
Je suis d'accord avec la priorité des chiffres sur les lettres. Mais est -il possible de trier tous les noms alpha en occultant s'ils sont en majuscule ou minuscule.

Merci à vous tous,

Hugues
 

Pièces jointes

Re : Tri des feuilles dans un classeur

Re

@ Lii

Tes dictionnaires ne sont pas faux ,le resultat de ma macro non plus
D'ailleurs rien ne peut etre juste ou faux 'en soi' tout au plus conforme ou non a telle ou telle regle
J'annote ainsi ma macro:
'Pour un tri ascendant exercé sur le nom des feuilles considéré comme Texte et conformement a l'ordre fixé par le code ASCII en vigueur sur la machine ou la macro est executée

@ Hugues

Voici une version qui ne prend pas en compte la difference Majuscule minuscule

@ carcharodon-carcharias

Beau travail !!!
 

Pièces jointes

Dernière édition:
Re : Tri des feuilles dans un classeur

Bon jour,

pierrejean 🙂 : c'est ce que je précisais dans le fil qui m'a permis de trouver cette "nuance".
Je n'ai pas encore regardé ta dernière production mais soit sûr que je vais le faire dés que possible.
Fichier joint pour ceux qui souhaitent l'ordre alphabétique classique.
 

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
5
Affichages
237
Réponses
2
Affichages
233
Retour