Tri cellules

BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007 - 10 juil. 2007 à 11:33
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007 - 13 juil. 2007 à 09:43
Bonjour chers codeurs, j'aurai (encore!) besoin de votre précieuse aide.

Bonjour, j'ai un petit soucis, je n'arrive pas à savoir comment procéder pour une procédure de classement.


Je souhaiterai classer par ordre décroissant les éléments compris entre le range D4 => Dxxx (la fin quoi) par ordre décroissant selon les 3 premiers caractères ET selon le range F4 => Fxxx





Exemple :


120.35        200
120.45        300
300.56        100 
100.12        320


(j'ai des valeurs dans les autres colonnes, mais je me suis limité aux 2 colonnes qui m'interessent).

Donnerait donc :


300.56        100
120.45        300 
120.35        200  
100.12        320

Merci d'avance pour votre aide :)

6 réponses

BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
10 juil. 2007 à 11:49
Je viens de réfléchir à un petit truc.
Les résultats que je dois classer sont formattés dans un tableau (bordures etc), il faudrait donc ne deplacer que le contenu des cellules, et non les cellules même. (si vous voyez ce que je veux dire).

De plus, comme le nombre de lignes n'est pas fixe, je pourrais donc effectuer le traitement en selectionnant de A1 => Kxx.

Donc, plutot que de chercher à compter le nombre de ligne, j'effectuerai le tri sur la zone séléctionnée.

Si toutefois mon explication n'est pas assez claire, veuillez m'en excuser, et je tâcherai de vous éclaircir les zones d'ombre :)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 juil. 2007 à 12:59
Salut,
essaie de regarder si cela ne pourrait pas t'aider.

   Range("D4:F" & Range("D4").End(xlDown).Row).Select
   Call Selection.Sort(Range("D4"), xlDescending, Range("F4"), Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
   False, Orientation:=xlTopToBottom)
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
10 juil. 2007 à 13:30
(Pfiou, 3eme fois que j'envoie, ca ne s'actualise pas).

Comment puis-je faire pour selectionner de A4 => fin de F et ne trier que sur la colonne D (descending) et F (ascending).

De plus, je ne dois trier qu'avec les 3 premiers caractèeres de la colonne D (autrement dit ce qu'il y a à gauche du . ).

Merci :)
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
10 juil. 2007 à 14:28
bonjour,
je ne suis pas sur à 100% mais il me semble que la ligne

Range("D4:F" & Range("D4").End(xlDown).Row).Select
devrait être
Range("D4:F" & Range("D4").End(xlUp).Row).Select

la sélection se faisant en remontant

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
10 juil. 2007 à 14:52
justement, non, elle doit se faire vers le bas :)
Celà dit, cette ligne est à corriger, vu que je veux selectionner de A4 => la fin, mais ca ne marchera totu de même pas, vu que je dois faire un tri seulement selon les 3 premier caractères de la colonne D, et non tout le contenu (si par exemple j'ai

100.30 500
150.30 200
150.40 100
250.10 100
150.35 300

ca ne doit pas etre mis dans l'ordre

250.10 100
150.40 100
150.35 300
150.30 200
100.30 500

mais dans l'ordre

250.10 100
150.35 300
150.30 200
150.40 100
100.30 500
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
13 juil. 2007 à 09:43
Petit up

Personne n'a une idée de comment procéder ?

J'ai du mal à retourner le problème dans le bon sens :s
0
Rejoignez-nous