Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Comment classer les onglets d'un classeur suivant un ordre précis?
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour a tous
j'aimerais savoir comment classer les onglets dans un classeur, explications dans la fichier joint
dans l'attente de vos réponses
a+
Papou 🙂
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Bonjour
Je n'ai surement pas ta réponse mais voici un code qui range les onglets par ordre croissant
il faudrait y ajouter une exclusion des trois premier puisque le reste doit être classé
enfin si ça peut t'aider
Code:
Sub onglet_Papou()
On Error Resume Next
Dim I As Integer, J As Integer
For I = 1 To Sheets.Count
For J = 1 To I - 1
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
Sheets(I).Move Sheets(J)
Exit For
End If
Next J
Next I
End Sub
Edit
une astuce que j'utilise un blanc devant le nom de ceux que je veux laisser en tête
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Re Tactic le forum,
presque bon mais il se peut aussi que j'ai d'autre ajouts entre Récap et Pm et là ????,
en tout cas avec des blancs devant les trois a pas toucher cela marche, c'est déjà un grand progrès.
a voir si on peut améliorer pour avoir tout OK
a+
bon dimanche
Papou🙂
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Re Papou et le forum
Essaie ceci
ça fonctionne mais tu devras rajouter une ligne de code a chaque onglet que tu voudras "figer"
en attendant mieux
Code:
Sub onglet_Papou()
On Error Resume Next
Dim I As Integer, J As Integer
For I = 1 To Sheets.Count
For J = 1 To I - 1
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
Sheets(I).Move Sheets(J)
Exit For
End If
Next J
Next I
Sheets("PM").Select
Sheets("PM").Move Before:=Worksheets("P1")
Sheets("Récap").Select
Sheets("Récap").Move Before:=Worksheets("PM")
End Sub
EDIT
Je sais pas pourquoi mais j'ai mis P99 donc je remodifie
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Ecrit different
Code:
Sub onglet_Papou()
On Error Resume Next
Dim I As Integer, J As Integer
For I = 1 To Sheets.Count
For J = 1 To I - 1
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
Sheets(I).Move Sheets(J)
Exit For
End If
Next J
Next I
With Sheets("PM")
.Select
.Move Before:=Worksheets("P1")
With Sheets("Récap")
.Select
.Move Before:=Worksheets("PM")
End With
End With
End Sub
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Re Tactic,
non c'était parfait avec le P99 devant PM, alors là c'est presque bon sauf que si tu ajoutes des feuilles au delà de 10 tu obtiens P1 P10 P12 P2 P3 P4
encore un point a contourner.!!!!
Pour les lignes à ajouter pour reclasser les trois ou 4 feuilles c'est pas un souci.
par contre Tactic les .select tu peux les retirer cela marche tout aussi bien
a+
papou🙂
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Bonjour Tactic le forum
bon alors en partant de ton idée et en renommant toutes mes feuilles de 1 à 10 01 02 03 etc cela marche très bien alors c'est déjà trés bien si maintenant on peut éviter le déplacement des feuilles Récap P99 et Pm ce serait un plus surtout si je viens a ajouter une feuille entre Récap et PM
voilà ce que j'ai retenu pour l'instant
Code:
Sub onglet_Papou()
Dim I As Integer, J As Integer
For I = 1 To Sheets.Count
For J = 1 To I - 1
If UCase(Sheets(I).Name) < UCase(Sheets(J).Name) Then
Sheets(I).Move Sheets(J)
Exit For
End If
Next J
Next I
Sheets("PM").Move Before:=Worksheets("P01")
Sheets("P99").Move Before:=Worksheets("PM")
Sheets("Récap").Move Before:=Worksheets("P99")
End Sub
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
bonjour a tous
Ma version:
Code:
Sub classe()
For n = 1 To Sheets.Count
For m = n + 1 To Sheets.Count
If Sheets(m).Name < Sheets(n).Name Then
Sheets(m).Move before:=Sheets(n)
End If
Next m
Next n
Sheets("PM").Move before:=Sheets(1)
Sheets("P99").Move before:=Sheets(1)
Sheets("Récap").Move before:=Sheets(1)
End Sub
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Bonjour PierreJean le forum,
merci pour ta version qui marche aussi très bien, mais aurais-tu une idée pour ne pas tenir compte des feuilles avant l'onglet PM sans avoir à déplacer les feuilles ?
En fait je peux ajouter des feuilles avant PM et dans ce cas il me faut rajouter une ligne pour déplacer
Code:
Sheets("Pxx").Move before:=Sheets(1)
si tu as une solution pour éviter cela?
bon dimanche
a+
papou🙂
Re : Comment classer les onglets d'un classeur suivant un ordre précis?
Re
Si tu es sur d'un bon classement jusqu'a la feuille PM teste:
Code:
for n=1 to sheets.count
if sheets(n).name="PM" then
pm=n
exit for
end if
next n
For n = pm+1 To Sheets.Count
For m = n + 1 To Sheets.Count
If Sheets(m).Name < Sheets(n).Name Then
Sheets(m).Move before:=Sheets(n)
End If
Next m
Next n
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD