Tri trés particulier

Boby71C

XLDnaute Impliqué
Bonjour

Je cherche une solution autre que le tri croissant ou décroissant.
Un ordre trés spécifique m'est demandé
En premier, trier par la colonne A en ordre croissant
Ensuite, trier par la colonne R ou les premières lettres des mots doivent se retrouver de la façon suivante:
Str
Par
Mob
Mon
Cab
Con
Je n'ai pas cité les noms complets.
Je vous joint un fichier pour mieux comprendre mon problême.

Merci pour votre aide

@+
 

Pièces jointes

  • TriParticulier.zip
    6.5 KB · Affichages: 26
  • TriParticulier.zip
    6.5 KB · Affichages: 25
  • TriParticulier.zip
    6.5 KB · Affichages: 25

SergiO

XLDnaute Accro
Re : Tri trés particulier

Bonjour Robert,

Voici une alternative :

Mettre la formule ci-dessous en colonne S et effectuer le tri par rapport à cette colonne :

=(R1="Structures")*1+(R1="Parties fixes")*2+(R1="Mobiles")*3+(R1="Montage")*4+(R1="Cablage")*5+(R1="Controle")*6

@+
 

Jocelyn

XLDnaute Barbatruc
Re : Tri trés particulier

Bonjour le Forum,
Bonjour Boby71C,

Un essai une formule en colonne S affecte une valeur de 1 à 6 suivant la valeur de la colonne R il suffit ensuite de trier dabord sur la colonne A puis sur la colonne S, la colonne S peut etre masqué.

La formule de la colonne S fait réference a une plage nommée qui se trouve sur la feuille 2

Jocelyn

Oup's Bonjour sergio désolé pour la collision
 

Pièces jointes

  • TriParticulier.zip
    6.3 KB · Affichages: 18
  • TriParticulier.zip
    6.3 KB · Affichages: 18
  • TriParticulier.zip
    6.3 KB · Affichages: 19

pierrejean

XLDnaute Barbatruc
Re : Tri trés particulier

Bonjour Robert

Une solution simple qui exige une colonne libre (dans le fichier joint la colonne S)

Vois si cela te convient

Salut Sergio

Salut Jocelyn
 

Pièces jointes

  • TriParticulier.zip
    9.1 KB · Affichages: 19
  • TriParticulier.zip
    9.1 KB · Affichages: 18
  • TriParticulier.zip
    9.1 KB · Affichages: 18

Boby71C

XLDnaute Impliqué
Re : Tri trés particulier

Bonjour les amis

Merci pour toutes vos réponses.
Malheureusement, pas de colonne S à utiliser dans mon fichier sur lequel nous utilisons les 256 colonnes. Je vous ai joint un trés petit exemple. Il s'agit d'un planning total charges de ma boite donc très volumineux. et rempli de code VBA.
Je suis en train de chercher une solution en VBA en rajoutant un N° devant les noms par exemple. De cette façon, je pourrais continuer à trier traditionnellement en ordre croissant sur la colonne R
1 Str
2 Par
3 Mob
4 Mon
5 Cab
6 Con
J'avais fais une tentative en attendant vos propositions mais je me suis retrouvé avec une incrémentation de N° alors qu'il est impératif de tout le temps conserver cet ordre.
Je continue à chercher.

Merci à tous
Bon après midi
@+
 

wilfried_42

XLDnaute Barbatruc
Re : Tri trés particulier

bonjour à tous

je ne sais pas si j'ai compris le probleme, un tri dans un ordre special. sans utilisé la colonne s, ca doit etre possible, sans macro, peut etre

Menu Outil/Option ---> Liste personalisée -- Creer sa liste dans le sens du tri desiré

Menu Données/trier/option ---> selon liste personalisée

mais je n'ai surement rien compris à la demande
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Tri trés particulier

re

Voila la version qui n'a pas besoin de colonne supplementaire

de 1 a 6 ajouté en colonne R
puis Tri
puis suppression du 1 a 6
 

Pièces jointes

  • TriParticulier.zip
    12.2 KB · Affichages: 20
  • TriParticulier.zip
    12.2 KB · Affichages: 19
  • TriParticulier.zip
    12.2 KB · Affichages: 21

SergiO

XLDnaute Accro
Re : Tri trés particulier

Re,

Voici le code de pierrejean modifié pour éviter l'utilisation d'une colonne supplémentaire :

Code:
Sub test()

liste = Array("Structures", "Parties fixes", "Mobiles", "Montage", "Cablage", "Controle")
For n = 1 To Range("R65536").End(xlUp).Row
 For m = 0 To 5
 If Range("R" & n) = liste(m) Then Range("R" & n) = m & " - " & liste(m)
 Next m
Next n
Range("A1:R" & Range("R65536").End(xlUp).Row).Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("R1") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
        
Range("R1:R65536").Replace What:="* - ", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("A1").Select
End Sub

@+
 

Jocelyn

XLDnaute Barbatruc
Re : Tri trés particulier

re,
Bonjour wilfried_42,

Bon bon en espérant ne pas avoir trop massacré le code de Pierrejean en essai qui se base sur son fichier

Demande humbement pardon a pierrejean pour le jeu de massacre

Jocelyn
 

Pièces jointes

  • TriParticulier.zip
    11.9 KB · Affichages: 19
  • TriParticulier.zip
    11.9 KB · Affichages: 20
  • TriParticulier.zip
    11.9 KB · Affichages: 19

wilfried_42

XLDnaute Barbatruc
Re : Tri trés particulier

re à tous

voici ma petite contribution, à l'aide d'un tri personalisé, en fonction d'une liste personalisée, modifiable bien entendu : Menu Outil/Option --> onglet liste personalisée

il est possible que tu sois obligé de creer ta liste personalisée, je ne sais pas si elle est intégrée au classeur

edit : Jocelyn :) sans VBA. enregistreur de macro seulement pour pas faire les manip à chaque fois
 

Pièces jointes

  • TriParticulierv1.xls
    28 KB · Affichages: 57

Boby71C

XLDnaute Impliqué
Re : Tri trés particulier

Bonsoir à tous
Solution de Wilfried retenue. C'est excellent. Je n'avais pas du tout pensé à la liste personnalisée. C'est la première fois que je l'utilise.:eek:
Toutes vos solutions sont bonnes. Je les garde dans mes archives.
Merci à tous pour votre contribution.

@+
 

Discussions similaires

Réponses
2
Affichages
885

Statistiques des forums

Discussions
315 104
Messages
2 116 251
Membres
112 697
dernier inscrit
administratif@ets-delestr