Organisation des feuille d'un classeur excel
Résolu
Qhes
Messages postés
176
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerais savoir s'il existe un petit truc pour ranger des feuille d'un classeur excel 2003 par ordre alphanumérique croissant?
J'ai un classeur de 200 pages... les ranger une par une je vais pas y arriver... srtout que le nombre de page est amener a encore augenter...
J'aimerais savoir s'il existe un petit truc pour ranger des feuille d'un classeur excel 2003 par ordre alphanumérique croissant?
J'ai un classeur de 200 pages... les ranger une par une je vais pas y arriver... srtout que le nombre de page est amener a encore augenter...
A voir également:
- Organisation des feuille d'un classeur excel
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Trier un tableau excel - Guide
11 réponses
Bonsoir,
Oui, je l'avais pressenti que j'avais répondu un peu vite ;-)
et je ne disposais plus de temps pour tester et corriger...
Avec les éléments que tu donnes ça devrait être mieux avec ça :
C'est limité à des nombres de 4 chiffres, si plus tu mets "00000" et tu changes '30), 4)' en '30), 5)' (2 fois chaque)
Si certaines feuilles ne devant pas être triées sont touchées il faudra ajouter d'autres contrôles if...
eric
Oui, je l'avais pressenti que j'avais répondu un peu vite ;-)
et je ne disposais plus de temps pour tester et corriger...
Avec les éléments que tu donnes ça devrait être mieux avec ça :
Sub TrierOnglets() Dim Boucle As Integer, Compteur As Integer For Boucle = 5 To Sheets.Count For Compteur = 1 To (Boucle - 1) If Right("0000" & Mid(UCase(Sheets(Boucle).Name), 2, 30), 4) < Right("0000" & Mid(UCase(Sheets(Compteur).Name), 2, 30), 4) Then Sheets(Boucle).Move before:=Sheets(Compteur) Exit For End If Next Compteur Next Boucle End Sub
C'est limité à des nombres de 4 chiffres, si plus tu mets "00000" et tu changes '30), 4)' en '30), 5)' (2 fois chaque)
Si certaines feuilles ne devant pas être triées sont touchées il faudra ajouter d'autres contrôles if...
eric
Bonjour,
Solution ici :
http://www.commentcamarche.net/forum/affich 3356070 vba trier les feuilles
m@rina
Solution ici :
http://www.commentcamarche.net/forum/affich 3356070 vba trier les feuilles
m@rina
cette macro est génial et surtout super rapide...
j'en avais fait une super longue et compliquer qui rammant a plus finir...
Merci :)
Cependant, j'ai une petit question...
mes feuille on un format : 1 Lettre + 1 nombre
exemple L423, L5 ou L530
et le problème c'est plutot que des les avoir :
en premier L5 apres L423 et apres L530
J'obtient avec la macro :
en premier L423 apres L5 et en dernier L530...
Existe t il un moyen de remédier a cela???
Si ca n'existe pas tant pis, je ferrais avec.
j'en avais fait une super longue et compliquer qui rammant a plus finir...
Merci :)
Cependant, j'ai une petit question...
mes feuille on un format : 1 Lettre + 1 nombre
exemple L423, L5 ou L530
et le problème c'est plutot que des les avoir :
en premier L5 apres L423 et apres L530
J'obtient avec la macro :
en premier L423 apres L5 et en dernier L530...
Existe t il un moyen de remédier a cela???
Si ca n'existe pas tant pis, je ferrais avec.
Bonjour,
Il n'est pas possibel de renommer une feuille par un nom de feuille déjà existant, il faut donc employer une petite astuce.
Tu copie cette fonction dans UN MODULE GENERAL, genre Module1. (pas un module de feuille)
S'il devait y avoir un problème NE SAUVE PAS LE CLASSEUR.
Mais serrait quand même mieux que tu fasse un backup AVANT.
Tu dit.
A+
Il n'est pas possibel de renommer une feuille par un nom de feuille déjà existant, il faut donc employer une petite astuce.
Tu copie cette fonction dans UN MODULE GENERAL, genre Module1. (pas un module de feuille)
Sub ChangeNomFeuille() Dim TB Dim NB As Integer, i As Integer, CH As Boolean, Buff NB = Sheets.Count ReDim TB(NB) For i = 1 To NB TB(i) = Sheets(i).Name Next i '-------------------------------------- Trier: CH = False For i = 1 To NB - 1 If TB(i) > TB(i + 1) Then CH = True: Buff = TB(i) TB(i) = TB(i + 1): TB(i + 1) = Buff End If Next i If CH Then GoTo Trier '--------------------------------------- For i = 1 To NB Sheets(i).Name = i Next i For i = 1 To NB Sheets(i).Name = TB(i) Next i End Sub
S'il devait y avoir un problème NE SAUVE PAS LE CLASSEUR.
Mais serrait quand même mieux que tu fasse un backup AVANT.
Tu dit.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir tous les deux,
mdr !!! J'ai l'impression d'assister à une conversation de sourds-muets... sauf que c'est par écrit...
Pour se résumer, Qhes est content de la macro, mais il trouve dommage que le classement alphabétique mette, par exemple, L3 après L15...
... et que le L65 se trouve avant le L9 !
Problème de classement de nombres... reconnu comme du texte...
Je ne vois pas bien comment faire autrement...
m@rina
mdr !!! J'ai l'impression d'assister à une conversation de sourds-muets... sauf que c'est par écrit...
Pour se résumer, Qhes est content de la macro, mais il trouve dommage que le classement alphabétique mette, par exemple, L3 après L15...
... et que le L65 se trouve avant le L9 !
Problème de classement de nombres... reconnu comme du texte...
Je ne vois pas bien comment faire autrement...
m@rina
Bonsoir tout le monde,
si vraiment les noms ont tous 1 lettre et un nombre on peut adapter la macro de lupin :
Sub TrierOnglets()
Dim Boucle As Integer, Compteur As Integer
For Boucle = 1 To Sheets.Count
For Compteur = 1 To (Boucle - 1)
If Mid(UCase(Sheets(Boucle).Name), 2, 30) < Mid(UCase(Sheets(Compteur).Name), 2, 30) Then
Sheets(Boucle).Move before:=Sheets(Compteur)
Exit For
End If
Next Compteur
Next Boucle
End Sub
A la limite on peut ajouter le test de la 1ère lettre pour ne trier que les feuilles commençant par L...
eric
PS: pas trop le temps mais à la reflexion il faudra peut-être plutôt utiliser qcq chose comme mid("0000"&Mid(UCase(Sheets(Boucle).Name), 2, 30),4) pour trier...
si vraiment les noms ont tous 1 lettre et un nombre on peut adapter la macro de lupin :
Sub TrierOnglets()
Dim Boucle As Integer, Compteur As Integer
For Boucle = 1 To Sheets.Count
For Compteur = 1 To (Boucle - 1)
If Mid(UCase(Sheets(Boucle).Name), 2, 30) < Mid(UCase(Sheets(Compteur).Name), 2, 30) Then
Sheets(Boucle).Move before:=Sheets(Compteur)
Exit For
End If
Next Compteur
Next Boucle
End Sub
A la limite on peut ajouter le test de la 1ère lettre pour ne trier que les feuilles commençant par L...
eric
PS: pas trop le temps mais à la reflexion il faudra peut-être plutôt utiliser qcq chose comme mid("0000"&Mid(UCase(Sheets(Boucle).Name), 2, 30),4) pour trier...
bonjour,
en fait oui on s'est un peu perdu :)
sinon pour ma macro toute les feuilles a partir de la 5eme feuille ont le meme format : L et un nombre.
Je viens d'essayer la nouvelle macro mais la feuille L7 est toujours en les feuille L69 et L700
en fait oui on s'est un peu perdu :)
sinon pour ma macro toute les feuilles a partir de la 5eme feuille ont le meme format : L et un nombre.
Je viens d'essayer la nouvelle macro mais la feuille L7 est toujours en les feuille L69 et L700
c'est vraiment génial...
Ca marche merci bcp!!!
Juste encore une qyuestion... est ce que c'est possible de dire à la macro de ne pas toucher au 5 premières feuilles?
je sais j'en demande bcp... si c trop dite le moi...
Si c pas possible tant pis :)
Ca marche merci bcp!!!
Juste encore une qyuestion... est ce que c'est possible de dire à la macro de ne pas toucher au 5 premières feuilles?
je sais j'en demande bcp... si c trop dite le moi...
Si c pas possible tant pis :)
Bonjour,
Je ne sais pas si Eric est présent pour le moment mais en reprenant ses 2 lignes...
modifiées..
Je pense que ça ira..
A+
Je ne sais pas si Eric est présent pour le moment mais en reprenant ses 2 lignes...
For Boucle = 5 To Sheets.Count For Compteur = 1 To (Boucle - 1)
modifiées..
For Boucle = 6 To Sheets.Count For Compteur = 6 To (Boucle - 1)
Je pense que ça ira..
A+
Ce serrait valable dans tout les cas. Alpha et/ou Num. ?
A+
Faudrait tester mais je dirais que non.
Tu trouveras 8<12 mais 338 > 321 non ?
N'est-ce pas le but rechercher ?
Tu trouveras 8<12 mais 338 > 321
autrement dit..
8<12 et 321<338 ?
Mais pour des nombres ce n'est évidement pas nécessaire, je pensais surtout à...
L7 > L69 par comparaison, mais par somme L7 < L69 ?
A+