Trie les onglets des feuilles d'un fichier ex
Résolu
benji71
Messages postés
789
Statut
Membre
-
benji71 Messages postés 789 Statut Membre -
benji71 Messages postés 789 Statut Membre -
Bonjour à tous et toutes,
Permettez-moi de commencer ce post par vous souhaiter mes meilleurs pour l'année à venir. Que celle-ci vous apporte tt le bonheur du monde (avant ça fin ?))
J'ai trouvé sur le net cette macro (ci-dessous) qui trie les onglets d'un fichier. Je voudrais savoir si vous n'avez rien à redire à cette macro et en second, j'aimerais savoir s'il est possible de trier l'ensemble des onglets à l'exception de 3 feuilles nommés (date, bd_mcae et compl_info_parents). Ces feuilles doivent restés au début des onglets.
Voici la macro :
Sub TrieFeuilles()
Dim I As Integer
Dim J As Integer
Dim Min As Integer
Dim ModeCalcul As Integer
ModeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
With ActiveWorkbook.Worksheets
For I = 1 To .Count - 1
Min = I
For J = I + 1 To .Count
If .Item(J).Name < .Item(Min).Name Then Min = J
Next J
If Min <> I Then .Item(Min).Move before:=Worksheets(I)
Next I
End With
Application.Calculation = ModeCalcul
Application.ScreenUpdating = True
End Sub
Merci de me donner votre avis...très bonne soirée à tous et ttes..
Cdlmnt,
Berni//
Permettez-moi de commencer ce post par vous souhaiter mes meilleurs pour l'année à venir. Que celle-ci vous apporte tt le bonheur du monde (avant ça fin ?))
J'ai trouvé sur le net cette macro (ci-dessous) qui trie les onglets d'un fichier. Je voudrais savoir si vous n'avez rien à redire à cette macro et en second, j'aimerais savoir s'il est possible de trier l'ensemble des onglets à l'exception de 3 feuilles nommés (date, bd_mcae et compl_info_parents). Ces feuilles doivent restés au début des onglets.
Voici la macro :
Sub TrieFeuilles()
Dim I As Integer
Dim J As Integer
Dim Min As Integer
Dim ModeCalcul As Integer
ModeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
With ActiveWorkbook.Worksheets
For I = 1 To .Count - 1
Min = I
For J = I + 1 To .Count
If .Item(J).Name < .Item(Min).Name Then Min = J
Next J
If Min <> I Then .Item(Min).Move before:=Worksheets(I)
Next I
End With
Application.Calculation = ModeCalcul
Application.ScreenUpdating = True
End Sub
Merci de me donner votre avis...très bonne soirée à tous et ttes..
Cdlmnt,
Berni//
A voir également:
- Trie les onglets des feuilles d'un fichier ex
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Fichier rar - Guide
4 réponses
Bonjour cher le pingou,
merci pour votre post. je reponds à vos deux questions :
"l'avez-vous essayé" ..oui (j'ai mis des lettres sur plusieurs onglets et cela semble focntionner)
"l'ordre du tri vous convient-il ?" ben disons que l'ordre est alphabétique donc pour ce fichier je dirais que oui...vs pensez à autre chose ?
petite (ou grande précision) j'ai trouvé cette vba sur le net..donc, je dois avouer ne pas vraiment la comprendre..et donc il y des choses qui peut-être m'échappe.. :-(
à quoi dois-je être attentif..?
merci de votre collaboration et de l'éclairage que vous pourrez m'apporter..;
cdlmnt,
berni///
merci pour votre post. je reponds à vos deux questions :
"l'avez-vous essayé" ..oui (j'ai mis des lettres sur plusieurs onglets et cela semble focntionner)
"l'ordre du tri vous convient-il ?" ben disons que l'ordre est alphabétique donc pour ce fichier je dirais que oui...vs pensez à autre chose ?
petite (ou grande précision) j'ai trouvé cette vba sur le net..donc, je dois avouer ne pas vraiment la comprendre..et donc il y des choses qui peut-être m'échappe.. :-(
à quoi dois-je être attentif..?
merci de votre collaboration et de l'éclairage que vous pourrez m'apporter..;
cdlmnt,
berni///
Bonjour,
Il reste donc le problème des 3 premières feuilles qui doivent rester en place.
L'autre point est que je me pose la question sur la raison de devoir trier les feuilles, car je ne vois pas ce qui en changerait l'ordre établi si lors de l'insertion d'une nouvelle feuille vous la placez au bon endroit.
Ou alors c'est pour le plaisir de les trier !
Il reste donc le problème des 3 premières feuilles qui doivent rester en place.
L'autre point est que je me pose la question sur la raison de devoir trier les feuilles, car je ne vois pas ce qui en changerait l'ordre établi si lors de l'insertion d'une nouvelle feuille vous la placez au bon endroit.
Ou alors c'est pour le plaisir de les trier !
Bonjour Berni,
Bonne Année et meilleurs voeux pour 2012
Ce code me semble parfaitement adapté à ton besoin.
Pour ne pas toucher aux 3 premières feuilles, il suffit de commencer le tri à partir de la 4° feuille (cf La Palice :)) en utilisant :
Cordialement
Patrice
Bonne Année et meilleurs voeux pour 2012
Ce code me semble parfaitement adapté à ton besoin.
Pour ne pas toucher aux 3 premières feuilles, il suffit de commencer le tri à partir de la 4° feuille (cf La Palice :)) en utilisant :
For I = 4 To .Count - 1 ...(au lieu de For I = 1 To .Count - 1) ou pour le cas ou les trois premières feuilles auraient été déplacées :
.Item("compl_info_parents").Move before:=.Item(1)
.Item("bd_mcae").Move before:=.Item(1)
.Item("date").Move before:=.Item(1)
For I = 4 To .Count - 1
...
Cordialement
Patrice