VBA [Excel 2003] Tri pas croissant pas décroi

Résolu/Fermé
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 - 23 mars 2012 à 13:07
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 23 mars 2012 à 16:28
Bonjour,

Voila mon problème, je souhaite faire un tri personnaliser de mon tableau ni croissant ni décroissant. J'ai lu pas mal de truc mais les solutions que j'ai trouvé sont applicable
à Excel 2007 pas à 2003. Comme le trie personnalisé par liste.


Je voudrai donc trier mon tableau A8:H40 en fonction de la colonne I:I (critères) sur la colonne H.

Quelqu'un aurai une idée?

Merci d'avance.



A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
23 mars 2012 à 14:52
Bonjour,

1) Outils/Options/Liste pers. /Importer la liste des cellules : $I$2:$I$7
2) Données/Trier../Trier par : colonne H - Options, Premièreclé de l'ordre de tri : GL,LK, ...
3
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 15:39
Merci c'est exactement ce que je cherchais
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 23/03/2012 à 16:29
De rien, au plaisir de relire sur le forum

Cordialement
Patrice

PS : Avec Excel 2007 :
1) Bouton Office / Options Excel / Standard / Modifier les listes personnalisées / Importer la liste des cellules : $I$2:$I$7
2) Accueil / Trier et Filtrer / Tri personnalisé / Trier par : colonne H - Ordre : Liste personnalisée : GL, LK, ...
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
23 mars 2012 à 13:11
Bonjour

Je pense que tu arrive a le faire manuellement? En selectionnant ton tableau et en faisant clic droit > trier > personnalisé
Ensuite tu sélectionne ta colonne de tri et le tour est joué....

Pour l'importer sur VBA, ne voulant pas dire de bétise et ne connaissant que les formule 2007.
Je te conseil de faire un enregistrement de macro et ensuite de faire la manipulation cité ci dessus! du coup tu aura la synthaxe et tu n'auras plus qu'a ajuster ta formule
0
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 13:15
Merci de ta réponse si rapide, mais dans le clic droit sous 2003 il n'y a pas la fonction tri. J'ai essayé de trouver un tri personnalisé quelque part mais je ne le trouve pas.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
23 mars 2012 à 13:19
Je pense que cela va t'aider :

https://www.hugedomains.com/domain_profile.cfm?d=culturepc&e=com

Sur Excel 2003, trier ce trouve dans le menu "Donnée" en haut de ton écran

Tiens nous au courant si c'est bon ;)
0
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 13:22
Exacte mais il n'y a pas de fonction personnalisé. j'ai cherché aussi dans le bouton option mais toujours rien.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
23 mars 2012 à 13:26
Je crois que j'ai mal compris la question alors .....

A quoi te sert ton tri? un tri pour moi c'est pour classé quelque chose dans un certain ordre.... donc croissant ou décroissant...

Quel est exactement le tri que tu souhaite sur ta colonne H?
0
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 13:30
Mon tri doit s'effectuer en fonction de la colonne I.

Exemple de la colonne I

GJ
LK
TOR
BS
SD
VS

Donc je voudrai que ma colonne H sois trié dans cette ordre là.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
Modifié par Submin le 23/03/2012 à 13:38
Mais donc tu va bien trié une des deux colonne dans un ordre croissant ou décroissant....?
Ou alors je suis largué?
0
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 13:47
non pas du tout.
Dans la colonne H j'ai un truc du style:
GJ
GJ
LK
TOR
LK
TOR
BS
SD
GJ
LK
TOR
GJ
LK
TOR
BS
SD
VS

Et je voudrai que ce soit trié comme ça:
GJ
GJ
GJ
GJ
LK
LK
LK
LK
TOR
TOR
TOR
TOR
BS
BS
SD
SD
VS
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
23 mars 2012 à 14:05
Comment tu rajoutes tes ligne dans ton tableau? tu utilises un Userform?

Maintenant que j'ai tout compris a ce que tu demande je vais te faire le programme ^^ j'y tiens comme je t'ai fais galérer :D

Je repasse quand j'ai fini
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
Modifié par Submin le 23/03/2012 à 14:50
Dis moi ce que tu en penses....

Je ne trie la colonne H et je déplace toute la ligne en question et non juste la colonne I
Si tu voulais juste deplacé la colonne I il y a juste a ajuster le code!


Public Sub tri()  
    Dim Nb_LigneTot, i, j As Integer  
      
    Nb_LigneTot = Columns(8).Find("*", , , , xlByColumns, xlPrevious).Row  
      
'La première ligne reste inchangée dans tous les cas donc je commence a i=2  
'Il fautdra bien sur commencer a i = 3  et j = 2 si il y a une ligne d'entete, pour le reste de la macro rien ne change  
    For i = 2 To Nb_LigneTot  
        For j = 1 To i - 1  
            If Cells(i, 8).Value = Cells(j, 8).Value And Cells(i).Value <> Cells(j + 1, 8).Value And j <> i - 1 Then  
                Rows(i).Select  
                Selection.Cut  
                Rows(j + 1).Select  
                Selection.Insert Shift:=xlDown  
            End If  
        Next j  
    Next i  
End Sub
0
Mrfrize Messages postés 188 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 28 novembre 2023 6
23 mars 2012 à 15:45
Merci beaucoup mais je trouve cette solution pas très "safe". Je vais essayer de faire une macros avec les infos données pas Patrice33740.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
23 mars 2012 à 15:50
Ok pas de soucis :D elle marche dans tous les cas pourtant

Comme je connais pas Excel 2003 j'avoue que je ne peux faire que te donner du VBA.

Patrice33740 à l'air de mieux Excel 2003 et donc pourra surement plus t'aider sans utiliser mon code VBA ..

Enfin au cas ou tu as toujours le code qui marche :) sachant que tu avoir 20 000 ligne cela marchera sans rien touché au code. Le problème est juste que je pense que si la qantité augmente le temps d'éxécution augmentera
0