Macro pour trier les feuilles d'un classeur excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 908 fois - Téléchargée 44 fois

Contenu du snippet

Cette macro permet de trier dans l'ordre croissant les feuilles d'un classeur excel

Il faut créer une feuille "Sommaire" et la placer en première position. Ensuite créer un bouton et lui affecter la macro suivante :

Source / Exemple :


Sub Macro1()
  Dim i As integer
  
  For i = 2 To Worksheets.Count
    Cells(i - 1, 1) = Worksheets(i).Name
  Next i
  
  Range("A1").Select
  Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
      
  For i = Worksheets.Count To 2 Step -1
    a = Sheets("Sommaire").Cells(i - 1, 1)
    Sheets(a).Move after:=Sheets(i)
  Next i
  Sheets("Sommaire").Select
End Sub

A voir également

Ajouter un commentaire

Commentaires

coquilledepapillon
Messages postés
3
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
18 février 2004
-
Salut,

J'ai pour habitude de ne consulter que le site, mais là, je me lance en te proposant une autre macro qui trie les onglets.

Sub trieonglet()
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
ActiveSheet.Name = "ZZZ"
Dim i As Integer
Dim j As Integer
i = 1
j = Sheets.Count
For i = 1 To j
Cells(i, 1).Value = Sheets(i).Name
Next i
Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For i = 1 To j - 1
Sheets(Sheets("zzz").Cells(i, 1).Value).Move before:=Sheets(i)
Next i
Application.SendKeys ("~")
Sheets("ZZZ").Delete
End Sub
AKARKOUNE
Messages postés
1
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
15 décembre 2009
-
Bonjour,

Je vous propose également le code suivant, je pense que c'est le plus court qu'il soit.

Sub Macro1()

For i = 1 To Worksheets.Count
For j = i + 1 To Worksheets.Count
If Worksheets(i).Name > Worksheets(j).Name Then
Worksheets(j).Move Sheets(i)
End If
Next j
Next i

End Sub
> AKARKOUNE
Messages postés
1
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
15 décembre 2009
-
peux tu expliquer litteralement ta macro pour ceux qui ne connaissent pas le VBQ
ninonabil
Messages postés
1
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
14 avril 2011
-
j ai un pb je veux avoir une methode simple pour faire les ecarts de vents et la gestion de stock en marco pendant une periode d une année ,
jordane45
Messages postés
25985
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 juillet 2019
313 > ninonabil
Messages postés
1
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
14 avril 2011
-
Bonjour Ninonabil,
Si tu as des questions, passe par le forum directement plutôt que de les mettre dans les commentaires d'une source...

http://codes-sources.commentcamarche.net/forum/vba-office-excel-word-1774


Pense à lire la charte du forum avant :
http://codes-sources.commentcamarche.net/contents/11-charte-de-commentcamarche-net-conseils-d-ecriture


Cordialement,
Jordane

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.