Trier les feuilles excel [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
7 juillet 2008
-
Messages postés
14
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
7 juillet 2008
-
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

1 réponse

Messages postés
1263
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
15 mai 2017
534
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
7 juillet 2008

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