Tri des feuilles dans un classeur

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
 

mromain

XLDnaute Barbatruc
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+
 

pierrejean

XLDnaute Barbatruc
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
 

Hugues

XLDnaute Impliqué
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
 

Lii

XLDnaute Impliqué
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

  • OngletsEnOrdreAlphabétique.zip
    8.3 KB · Affichages: 26

Hugues

XLDnaute Impliqué
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

  • tri_nom_onglet.xls
    40 KB · Affichages: 53

pierrejean

XLDnaute Barbatruc
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

  • tri_nom_onglet.zip
    11.5 KB · Affichages: 24
Dernière édition:

Lii

XLDnaute Impliqué
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

  • OngletsOrdreAlphabétique2.zip
    23.9 KB · Affichages: 36
  • OngletsOrdreAlphabétique2.zip
    23.9 KB · Affichages: 37
  • OngletsOrdreAlphabétique2.zip
    23.9 KB · Affichages: 35

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 346
Membres
103 821
dernier inscrit
Lorient56