Trier les feuilles excel

Résolu/Fermé
roberto93 Messages postés 14 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 7 juillet 2008 - 1 juil. 2008 à 16:54
roberto93 Messages postés 14 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 7 juillet 2008 - 2 juil. 2008 à 11:16
Bonjour,

Je voudrais trier les feuilles excel dans l'ordre croissant

1 2 3 4 5 6 ....
Mais je n'y arrive pas j'ai toujours 1 12 11 10 9 8 7 ....
Comment faire?
Voici la macro que j'ai
Sub Copy()
i = 2
k = 35
While i < 13
Sheets("1").Select
Sheets("1").Copy After:=Sheets(3)
Range("A1:B2").Select
ActiveCell.FormulaR1C1 = k + 39450
ActiveSheet.Name = i
With ActiveCell.Characters(Start:=1, Length:=7).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ColorIndex = xlAutomatic
i = i + 1
k = k + 30
End With
Wend
End Sub

Merci d'avance
A voir également:

1 réponse

g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
1 juil. 2008 à 18:25
Bonjour,

C'est parceque le tri se fait par ordre alpha et non numérique.
Pour y remédier les feuilles doivent être nommées 01 02 03...... 10 11 12....etc...

Par ailleurs, j'ai plus court :

Sub TriFeuilsCrois()
'trie les feuilles par ordre croissant
Dim I As Integer, J As Integer
For I = 1 To Sheets.Count 'pour débuter le tri à la feuille x remplacer For I = 1 pat For I = x
For J = 1 To I - 1 'pour débuter le tri à la feuille x remplacer For J = 1 par For J = x
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then 'pour tri décroissant remplacer < par >
Sheets(I).Move Before:=Sheets(J)
Exit For
End If
Next J
Next I
End Sub

Bonne soirée.
4
roberto93 Messages postés 14 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 7 juillet 2008
2 juil. 2008 à 11:16
Bonjour,

Merci pour votre aide j'ai résolu le problème voici le code

Sub Copy()

i = 2
k = 35
n = 0
While i < 13
Sheets("1").Select
Sheets("1").Copy After:=Sheets(3 + n)
Range("A1:B2").Select
ActiveCell.FormulaR1C1 = k + 39450
ActiveSheet.Name = i
With ActiveCell.Characters(Start:=1, Length:=7).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ColorIndex = xlAutomatic
i = i + 1
k = k + 30
n = n + 1
End With
Wend
End Sub
0