Petit problème de trie d'onglets
Bonjour à tous,
Grace à l'entraide du forum une petite macro me trie mes onglets, à la suite j'ai fixé la position des 19 premiers onglets.
Lors du trie mes onglets commençant par "_" se retrouvent classés à la fin de mon classeur.
J'aimerai remonter mes onglets "_Synthese_2014","_Synthese_2015", ect....à partir de la position n°20.
Mon problème est de remonté ces onglets qui s’incrémentent tous les ans sans avoir à fixer, dans la macro, l'année.
Voici le code actuellement utilisé
Sub onglet ()
Dim a As Integer, b As Integer
Application.ScreenUpdating = False
affiche_tous ' affiche tous les onglets de mon classeur
For a = 1 To Sheets.Count
For b = a + 1 To Sheets.Count
If UCase(Sheets(a).Name) > UCase(Sheets(b).Name) Then
Sheets(b).Move Before:=Sheets(a)
End If
Next b
Next a
Sheets("Sources").Move Before:=Sheets(1)
Sheets("Bienvenue").Move Before:=Sheets(2)
Sheets("Modele_CALE").Move Before:=Sheets(3)
Sheets("Modele_CALS").Move Before:=Sheets(4)
Sheets("Modele_Cen").Move Before:=Sheets(5)
Sheets("Modele_Enc").Move Before:=Sheets(6)
Sheets("Modele_Mic").Move Before:=Sheets(7)
Sheets("Modele_Pce").Move Before:=Sheets(8)
Sheets("Modele_Pip").Move Before:=Sheets(9)
Sheets("Modele_PDP").Move Before:=Sheets(10)
Sheets("Modele_Rev").Move Before:=Sheets(11)
Sheets("Modele_Son").Move Before:=Sheets(12)
Sheets("Modele_Synthese_PDP").Move Before:=Sheets(13)
Sheets("Synthese des centrifugeuses").Move Before:=Sheets(14)
Sheets("Synthese des enceintes").Move Before:=Sheets(15)
Sheets("Synthese des microscopes").Move Before:=Sheets(16)
Sheets("Synthese des pipettes").Move Before:=Sheets(17)
Sheets("Synthese des réveils&minuteurs").Move Before:=Sheets(18)
Sheets("Synthese des sondes").Move Before:=Sheets(19)
MsgBox "Travail terminé !"
End subj'avais pensé à utiliser quelques chose comme
Left(.Name,10 ) = "_Synthese_"= sheets (20) mais très manisfestement ma syntaxe n'est pas bonne si quelqu’un à une petite idée je suis preneur.
Si il y a besoin d'un exemple j’essaierai de créer un fichier d'un trentaine d'onglets et de le poster sur cjoint
Merci,
Edlede
Bonjour,
je corrige juste un peu la syntaxe pour déplacer les feuilles :
for i = 20 to Sheets.Count
if Left(sheets(i).name , 10 ) = "_Synthese_" then
Sheets(i).Move Before:=Sheets(20)
end if
next i sa déplacera vous onglet "_Synthese_2014","_Synthese_2015", ect....à partir de la position n°20. mais pas dans l'ordre chronologie
Bonjour,
Tu procèdes à un tri d'abord, qui classe par ordre alpha... suivi d'un nouveau reclassement qui fait une dérogation à cet ordre...
Cela fait beaucoup de manoeuvres dont certaines ne sont pas utiles.
Pour les noms en _xxx, elles débutent en effet par le caractère 95 qui vient à la suite des lettres majuscules (65 à 90) dans l'ordre "binaire"...
Un classeur n'est pas nécessaire, mais une liste exhaustive de tes onglets, et l'ordre dans lequel tu les veux, si.
Je pense d'autre part qu'opérer un classement à partir de la liste est préférable : on n'intervient sur les feuilles qu'à la fin, pour les mettre dans l'ordre de la liste triée.
Cordialement.
Bonjour minance
c'est tellement simple que je mérite le fouet,
Merci c'est parfait,
Edlede
MFerrand a écrit :Pour les noms en _xxx, elles débutent en effet par le caractère 95 qui vient à la suite des lettres majuscules (65 à 90) dans l'ordre "binaire"...
c'est toujours bon a prendre comme info,
Je pense d'autre part qu'opérer un classement à partir de la liste est préférable : on n'intervient sur les feuilles qu'à la fin, pour les mettre dans l'ordre de la liste triée.
Cordialement
il faux que je references tous les noms d'onglet et que j'applique le trie dessus?
Mon nombre d'onglet augmente régulièrement, j'ai mal conçu mon fichier il y a 2 ans, et je ne connaissais pas les possibilités d'excel à ce moment là.
Galopin01 à déjà regarder ca et m'a expliqué mes erreurs de construction,( j 'ai un onglet par équipement sur 7 modeles différents) mais par manque de temps ( je change de boulot dans 10 jours!) j'essaie de laissé un fichier qui fonctionne pas trop mal avec ces 500 onglets....
Encore merci à vous pour les explications
minanse a écrit :. mais pas dans l'ordre chronologie
En fait Si, vu que je classe tous les onglets en alpha numérique avant. Ils se retrouvent parfaitement classés