Classer les onglets par ordre alpha

Phil 45

XLDnaute Junior
Bonjour

j'ai recherché dans le foruim, mais pas trouvé,( peut etre mal cherché)

Je crois qu'il existe un "truc" pour faire une classement des onglets par ordre alpha. Je viens de récuperer un classeur à modifier avec de nombreux onglets et ce classeur est sur le reseau et donc utilisé par plusieurs personnes, d'ou l'idée de le rendre plus facile à utiliser

Qui peut m'aider


D'avance merci


Cordialement:)
 

Dull

XLDnaute Barbatruc
Re : Classer les onglets par ordre alpha

Salut Phil45, Ami PierreJean:), le Forum

Un autre Code pourleFun :)

Code:
Sub TriFeuilles2()[COLOR=Green]'By Ti[/COLOR]
Dim Bcle As Integer, Index As Integer, Sh As Object
Application.ScreenUpdating = False
  On Error Resume Next
  With ThisWorkbook
    For Each Sh In ThisWorkbook.Sheets
      If Sh.Index >= 1 Then
        For Index = 1 To .Sheets.Count
          If LCase(Sh.Name) > LCase(.Sheets(Index).Name) And Sh.Index < Index Then
            Sh.Move , .Sheets(Index)
          End If
        Next Index
      End If
    Next Sh
  End With
Application.ScreenUpdating = True
End Sub
Bonne Journée
 

Pièces jointes

  • Phil45.zip
    14.7 KB · Affichages: 65
  • Phil45.zip
    14.7 KB · Affichages: 65
  • Phil45.zip
    14.7 KB · Affichages: 64

Phil 45

XLDnaute Junior
Re : Classer les onglets par ordre alpha

Merc Dull

ton code marche également. Je mets tout ça de coté. j'aurais encore besoin de l'aide du forum, car je viens d'avoir de nouvelles fonction dans un nouveau service ou Excel est trés utilisé, mais les createurs de ces fichiers ne sont plus là et les utilisateurs veulent de la simplification, du tri, etc donc j'ai quelques fichiers à revoir

Merci pour votre aide

Philippe
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Classer les onglets par ordre alpha

Bonjour,

Pour noms d'onglets numériques

Code:
Sub tri_ongletDirect2()
  Application.ScreenUpdating = False
  For i = 1 To Sheets.Count
     For j = i To Sheets.Count
        If IsNumeric(Sheets(j).Name) Then
          x = String(30 - Len(Sheets(j).Name), "0") & Sheets(j).Name
        Else
          x = UCase(Sheets(j).Name)
        End If
        
        If IsNumeric(Sheets(i).Name) Then
          y = String(30 - Len(Sheets(i).Name), "0") & Sheets(i).Name
        Else
          y = UCase(Sheets(i).Name)
        End If
 
        If x < y Then
          Sheets(i).Move before:=Sheets(j)
          Sheets(j).Move before:=Sheets(i)
        End If
     Next j
  Next i
End Sub

http://boisgontierjacques.free.fr/fichiers/Tri/jb-TriOnglet.xls

JB
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55