ranger les feuilles par ordre alpha.

  • Initiateur de la discussion Initiateur de la discussion SYL'S
  • 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 !

S

SYL'S

Guest
Bonjour le forum,

j'ai une petite question à soumettre suite aux différents posts de ce matin sur les feuilles....

est-il possible de ranger les feuilles par ordre alphabétique de façon automatique ou par une petite astuce ?

j'ai des fichiers avec un modèle et plusieurs clients. Comme je suis bordélique...les feuilles sont mélangées???

Merci. Syl's.
 
Salut SYL'S,

Je suppose que tu parles du rangement des onglets.
Je ne connais pas de méthode automatique (toujours heureux si quelqu'un a une astuce), mais le faire à la main en déplaçant les onglets (en tenant la touche gauche de la souris enfoncée pendant le déplacement) est tellement rapide ...

Ândré.
 
Salut et resalut 🙂

oui je parle en fin de compte des onglets.... d'ailleurs en faisant une recherche par "trie Onglets" dans chercher du forum on trouve tout de suite...alors que feuille fonctionne mal.

<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=28646&t=28635>

avec des solutions de zon , éric et d'autres....

Merci André pour le "onglet". et salut du syl's bordélique.
 
Bonjour SYL's, André et le Forum

Pour trier les Feuilles il y a plusieurs méthodes, en voici une...
Offerte par Michel Pierron (MPFE)

'cette procédure respecte le tri des indices par défaut des feuilles
'(feuil1,feuil2,.....,feuil11 et non feuil1,feuil11,feuil2)

Sub SheetsSort()
'Michel Pierron, mpfe
Dim id As Byte, no As Byte, ValNom(1) As Byte
Dim StrNom(1) As String

no = 1
Application.ScreenUpdating = False
Do While no < Sheets.Count
id = Sheets.Count
Do While id > no
If IsAlphaNum(Sheets(id).Name) And IsAlphaNum(Sheets(id - 1).Name) Then
StrNom(0) = Left(Sheets(id).Name, Len(Sheets(id).Name) - iPos(Sheets(id).Name))
ValNom(0) = Mid(Sheets(id).Name, Len(StrNom(0)) + 1)
StrNom(1) = Left(Sheets(id - 1).Name, Len(Sheets(id - 1).Name) - iPos(Sheets(id - 1).Name))
ValNom(1) = Mid(Sheets(id - 1).Name, Len(StrNom(1)) + 1)
Select Case StrComp(StrNom(0), StrNom(1), 1)
Case -1
Sheets(id).Move Before:=Sheets(id - 1)
Case 0
If ValNom(0) < ValNom(1) Then Sheets(id).Move Before:=Sheets(id - 1)
End Select
Else
If StrComp(Sheets(id).Name, Sheets(id - 1).Name, 1) = -1 Then
Sheets(id).Move Before:=Sheets(id - 1)
End If
End If
id = id - 1
Loop
no = no + 1
Loop
Sheets(1).Activate
Application.ScreenUpdating = True
End Sub

Private Function IsAlphaNum(NameSheet As String) As Boolean
IsAlphaNum = Not IsNumeric(NameSheet) And IsNumeric(Right(NameSheet, 1))
End Function

Private Function iPos(NameSheet As String) As Byte
iPos = 0
Do While IsNumeric(Right(NameSheet, iPos + 1))
iPos = iPos + 1
Loop
End Function

Aves mes félicitations/remerciements à Michel car ce code fonctionne très bien
Bon après midi

@+Thierry
 
- 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
1
Affichages
392
Retour