Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2605 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Trier les onglets d'un classeur excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trier les onglets d'un classeur excel

n°2724358
petit file​t
Posté le 25-09-2007 à 17:49:18  profilanswer
 

Bonjour
Avec une macro, je crée des onglets à la demande sous un nom du type AB0000.
(A et B représentant des lettres et les 0 des chiffres)
Par contre, je n'arrive pas à les trier par ordre alphabétique.
Y aurait-il un moyen?
Merci

mood
Publicité
Posté le 25-09-2007 à 17:49:18  profilanswer
 

n°2724360
Idoine
Posté le 25-09-2007 à 17:54:26  profilanswer
 

Est-ce que tu les crées dans l'ordre (auquel cas par défaut il te les place dans l'ordre alpha inverse...) ?

n°2724381
petit file​t
Posté le 25-09-2007 à 19:41:08  profilanswer
 

Non, on me les demande au fur et à mesure dans n'importe quel ordre.
(alphabétique et numérique) et dans un nombre variable...
Et comme la macro génère automatiquement la feuille qui est unique, je ne peux pas relancer systématiquement toutes les feuilles

n°2724541
Idoine
Posté le 26-09-2007 à 13:43:48  profilanswer
 

Dans ce cas il ne te reste plus qu'à utiliser un genre de tri à bulle, et à placer la feuille au bon endroit dès la création...

n°2725618
TAM136
Posté le 01-10-2007 à 08:16:57  profilanswer
 

Idoine a écrit :

Dans ce cas il ne te reste plus qu'à utiliser un genre de tri à bulle, et à placer la feuille au bon endroit dès la création...


 
Bonjour,
 
Pas nécessairement.Petitfilet, tout dépend de ton nombre de feuilles.Je te propose deux solutions qui ne sont pas forcément idéales.S'il y en a beaucoup, elles te permettront de gagner néanmoinsdu temps.
 
1ère solution
Tu dois récupérer le nom de toutes feuilles. Pour cela, tu vas utiliser l'enregistreur de macros. Tu vas dans Outils/Macro/Nouvelle macro. Un nom par défaut apparaît macro 1.Tu peux le changer sous réserve de ne pas mettre d'espace ou de caractères spéciaux mais comme ça n'a pas vraiment d'importance, il vaut mieux garder le nom par défaut. Ensuite, tu te positionnes sur le nom de la feuille active. Tu ouvres le menu contextuel de la souris par un click droit et tu choisis Sélectionner toutes les feuilles.
Tu retournes dans Outils/Macro et tu sélectionnes Arrêter l'enregistrement. Une nouvelle fois, tu vas dans Outils/Macros et tu ouvres la macro en question, soit Macro 1 en double-cliquant sur Pas à pas détaillé. Une fenêtre s'ouvre et fait apparaître un code composé d'instruction du type
Sub Macro1()
Des commentaires en vert et commençant par une apostrophe:
Macro enregistrée le par..
En dessous, tu dois voir un code du type Sheets(Array"nom de chacune des feuilles" )
Tu copies uniquement les noms des feuilles et tu fermes la fenêtre de code. Tu retombes sur la feuille active et tu colles sur un document word. Tu supprimes les " et , par Ctrl+H Rechercher " Remplacer par rien. Tu tries cette liste et tu l'imprimes.Remarque, je pense qu'il existe un moyen plus simple de récupérer le nom des feuilles mais je n'ai pas eu le temps de chercher.
Tu as maintenant le classement par ordre alphabétique des noms. Tu vas pouvoir maintenant classer tes feuilles selon cette liste.
Tu as deux possibilités mais il faut savoir qu’il faut toujours partir de l'avant dernier mot de la liste. Je m'explique en prenant un exemple. On a la liste des feuilles suivantes telle qu'elles doivent apparaître par ordre alphabétique: article, assaut, boîte, canette, dromadaire….tarte,xérès, zanzibar. Mais tes feuilles, elles, sont en désordre par exemple canette, assaut, tarte, article, boîte, zanzibar, xérès, tarte. Tu te positionnes sur l'avant dernière liste qui est xérès et tu la mets avant zanzibar. Ensuite, tu déplaces tarte qui est devenu avant dernier sur la liste avant xérès et ainsi de suite.
La deuxième possibilité passe par la macro suivante mais elle n'est pas parfaite ce qui te contraint à taper les mots de la liste toujours selon de mon principe selon lequel on part de l'avant dernier.
 
Sub ClasserFeuillesParOrdreAlphabetique()
For i=1 To nb d'onglets ou de feuilles-1
'S'il y a 10 onglets
'For i=1 To 9
n = InputBox("Entrer nom feuille" )
m = InputBox("Entrer nom feuille" )
Sheets(n).Move Before:=Sheets(m)
Next i
End Sub
 
Tu lances la macro, une fenêtre s'ouvre et te demande de saisir un nom de feuille à déplacer: tu tapes xérès, soit l'avant dernier mot. La fenêtre te demande de saisir un nouveau nom: tu tapes zanzibar, soit le dernier mot. Cette fenêtre te demandera de saisir en fait tous les noms. Tu commences toujours par l'avant dernier. Je sais que ce n'est pas forcément la super solution mais elle fonctionne.
 
2ème solution
 Tu récupères toujours la liste des noms de feuilles.
Voir disquette fichier format excel
En A1, tu colles Sheets(" et tu recopies sur la colonne
En B1, tu colles la liste des noms par ordre alphabétique mais par ordre décroissant en partant de l'avant dernier mot
En C1, tu colles " ).Move Before:=Sheets("
En E1, tu colles la liste des noms par ordre alphabétique mais par ordre décroissant en partant bien du dernier mot
En F1, tu colles " )
En G1, tu concatènes A1&B1&C1&E1&F1
Tu copies la formule sur la colonne
Tu copies ta plage et tu la colles en dehors et tu colles en passant par le menu Edition/Collage spécial et en cochant l'option Valeurs.
Tu copies cette liste de valeur et tu la colles dans une macro
 
 
 
Sheets("avant dernier mot).Move Before:=Sheets("dernier mot" ) Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )
Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" ) Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )
Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" ) Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )
         
Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )      
Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )      
Sheets("avant dernier mot" ).Move Before:=Sheets("dernier mot" )      
         
 


Message édité par TAM136 le 01-10-2007 à 09:14:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Trier les onglets d'un classeur excel

 

Sujets relatifs
[resolu]recherche sous excel caratère spéciauxEXCEL - Menu "donnees" qui a disparu
exel transfert automatique vers boite emailEXCEL - effacement automatisé de cellules
Excel - Assimiler Lettre à un chiffrePlus d'imprimante sous EXCEL
comment remettre les onglets du Ctrl Alt SupprValeurs hexa mal interprété par Excel
Comment faire une interface pour filtrer & afficher données sous excelProblèmes Excel et Symboles
Plus de sujets relatifs à : Trier les onglets d'un classeur excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR