ranger les feuilles par ordre alpha.

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.
 
A

andré

Guest
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é.
 
S

SYL'S

Guest
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.
 
@

@+Thierry

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
314 662
Messages
2 111 641
Membres
111 243
dernier inscrit
flo-99010