Faire un tri spécifique A, R, D, V, 10, ...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marmotte18

XLDnaute Impliqué
Bonjour,

J'aimerais trier la plage B11:B23 par macro dans l'ordre suivant :
A R D V 10 9 8 7 6 5 3 2 1

J'arrive à le faire via "Outils" < "Options" < "Liste pers." dans laquelle j'ai introduit ma liste ci-dessus. Chez moi, elle se trouve en 6e position.

Le code suivant fonctionne alors très bien :

HTML:
    Range("B11:B23").Select
    Selection.Sort Key1:=Range("B11"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=6

Problème :

J'aimerais que mon fichier soit exportable et que je ne sois pas obliger d'introduire cette liste en 1ère position chez les uns, en 2e chez les autres, etc. ... ni d'être amené à adapter ma macro en fonction de l'emplacement de cette liste.

Merci par avance
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour à tous,

Peux-tu essayer avec :

VB:
Sub Test()
    Dim X As Long
    X = Application.CustomListCount + 1
    Application.AddCustomList ListArray:=Array("A", "R", "D", "V", "10", "9", "8", "7", _
                                               "6", "5", "3", "2", "1")
    Feuil1.Range("B11:B24").Sort Key1:=Range("B11"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=X
End Sub

A+ à tous
 
Dernière édition:
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour marmotte18, salut JC, heureux de te croiser 🙂

Si l'on préfère ne pas créer de liste personnalisée :

Code:
Sub Tri()
Dim tablo, plage As Range, cel As Range, pos As Variant
tablo = Array("A", "R", "D", "V", "10", "9", "8", "7", "6", "5", "3", "2", "1")
Set plage = [B11:B23]
Application.ScreenUpdating = False
Columns(plage.Column + 1).Insert [COLOR="Red"]'colonne auxiliaire[/COLOR]
For Each cel In plage
  pos = Application.Match(CStr(cel), tablo, 0)
  If IsNumeric(pos) Then cel.Offset(, 1) = pos
Next
plage.Resize(, 2).Sort Key1:=plage.Offset(, 1), Order1:=xlAscending, Header:=xlNo
Columns(plage.Column + 1).Delete
End Sub

A+
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonsoir,

Hi, Job & JC 🙂🙂

A adapter, un petit code....

Code:
Sub tri_liste_perso()
Dim Num_List As Byte
On Error Resume Next
Num_List = Application.GetCustomListNum(Array("Ligue1", "Ligue2", "National", "CFA1", "CFA2"))
    'on récupère le numéro de la liste personnelle dans Outils/Options/Listes Persos
If Num_List = 0 Then
    ' Si elle n'existe pas
Application.AddCustomList ListArray:=Array("Ligue1", "Ligue2", "National", "CFA1", "CFA2")
    ' on ajoute la liste personnelle
Num_List = Application.CustomListCount
    ' on récupère le numéro de la liste personnelle
    ' tout ajout de liste personnelle étant à la fin, ce sera donc la dernière
End If
Range("A1:B" & [A65000].End(xlUp).Row).Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=Num_List + 1
    ' On effectue le tri, avec pour première clé, le Championnat, et deuxième, le nom des joueurs
    ' Comme la première (Nouvelle Liste) n'est pas comptabilisée, on ajoute 1 à Num_List
    ' Pour le faire directement sur la feuille, Données/Trier, Lignes de titres : Oui
    ' Choisir Championnat, et dans Options, Première clé de l'ordre de tri, choisir Ligue1....
End Sub

Bonne soirée
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour à tous,
Salut Job 🙂 🙂,
Salut Hub 🙂 🙂, (Je me demande quand tu dors....Bon OK là il est 22:45 chez toi, mais il me semble t'avoir vu toute MA nuit...)

Je dépose un fichier pour avoir le plaisir de lire le vôtre... et surtout pour le plaisir de vous croiser 🙂 🙂

A++ les amis
A+ à tous
 

Pièces jointes

Re : Faire un tri spécifique A, R, D, V, 10, ...

Hi,

Je pense, qu'à cette période, le charbon de bois était plus proche de la cheminée que du BBQ.....

Juste une p'tite question, mon ami....

Si je rajoute une liste personnelle, la mienne, à moi-même, personnelle, qui n'appartient qu'à moi.....

Le tri, via "Liste Personnelle", par le biais d'un code, ça ne sera pas sûr, "Is'n it?"

Au plaisir...🙂
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour à tous,
Re Hub,

Ah ben ici le BBQ se fait dans le four , il neige...

Tu rajoutes ta liste, à toi, personnelle, ta tienne à toi, "que y a que toi qu'il l'a faite" MAIS que tu souhaites partager.

Donc tu la créées dans le fichier et elle sera en dernière position dans la liste.

Enfin, si j'ai bien tout compris à la demande....

A++ l'ami et il doit être l'heure, chez toi, d'un CitronVertà boireànotresanté
A+ à tous
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Re,

@ JC 🙂🙂

Vi,bien sûr, pour peu que la liste n'existe point encore....

Donc tu la créées dans le fichier et elle sera en dernière position dans la liste.

Si elle existe déjà....

Et que j'en rajoute une...

On fait quoi.....(autour de la cheminée....)😀

Je sais plus pourquoi, j'avais "pondu" ce code, mais il y avait certainement une raison.....(je vais chercher à le faire planter, si j'y arrive, vous m'entendrez......)

Bon Dimanche, moi, je vais me coucher, j'ai "école", demain....
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour à tous,
Re Hub,

Si elle existe et comme elle est créée, voir re-créée, elle sera toujours en dernière position.

Il est vrai qu'il sera plus "compliant" de vérifier si elle existe déjà...

Bonne nuit
A+ à tous
 
Dernière édition:
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour tout le monde,

Je suis stupéfait du nombre de réponses et je vous en remercie vivement.

Apparemment, on est obligé de créer une liste personnalisée ce que, à priori, j'aurais souhaité ne pas faire sur d'autres ordinateurs que le mien.

J'ai commis une petite coquille dans l'énoncé de mon problème. Il s'agit en fait de A R D V 10 9 8 7 6 5 4 3 2 (j'avais omis le 4 et mis en trop le 1). Bien entendu, aucune difficulté à adapter les macros.

JCLG : je suis gêné de te dire que si la liste A R D ... 2 est recouverte par une autre liste, ta macro ne fonctionne plus.

J'ai trouvé mon bonheur en prenant en définitive le code :

Code:
Sub TriPersonnel()
Dim NumList As Byte
'Récupération du N° de la liste personnelle ci-dessous dans Outils/Options/Listes Persos
NumList = Application.GetCustomListNum(Array("A", "R", "D", "V", "10", "9", "8", "7", "6", "5", "4", "3", "2"))
If NumList = 0 Then
    'Comme elle n'existe pas, création de cette liste :
    Application.AddCustomList ListArray:=Array("A", "R", "D", "V", "10", "9", "8", "7", "6", "5", "4", "3", "2")
 
    'Récupération du N° de la liste personnelle qui est forcément la dernière :
    NumList = Application.CustomListCount
End If
'Tri (Comme la première "Nouvelle Liste" n'est pas comptabilisée, on ajoute 1 à NumList)
Range("B11:B23").Sort Key1:=Range("B11"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=NumList + 1
End Sub

Je renouvelle un GRAND MERCI à tous.
 
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour,

Allez, un petit coup pour ne pas laisser mes potes tous seul à boire leur citronvert.

Si tu ne veux pas laisser de liste personnelles sur les autres postes tu la détruit après le tri ou à la fermeture du fichier

Sur la base du travail honteusement pompé de mes amis:

Code:
    Dim X As Long
    Dim mListe: mListe = Array("A", "R", "D", "V", "10", "9", "8", "7", "6", "5", "3", "2", "1")
    On Error Resume Next
    X = Application.GetCustomListNum(mListe)
    On Error GoTo 0
    If X = 0 Then
        X = Application.CustomListCount + 1
        Application.AddCustomList ListArray:=mListe
    End If
    Feuil1.Range("B11:B24").Sort Key1:=Range("B11"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=X
   [COLOR=red][B]Application.DeleteCustomList (X)[/B][/COLOR]

A+
A++Bh²
A++JC
[Editi] hello Job
 
Dernière modification par un modérateur:
Re : Faire un tri spécifique A, R, D, V, 10, ...

Bonjour à tous,
Salut Marmotte 🙂

Ne soit pas gênée, j'ai eu le plaisir, grâce à ta discussion, de faire une capture d'écran "mémorable" envoyée à des amis sur XLD.

Tu as trouvé une solution grâce à XLD, c'est ce qui compte.

A+ à tous
 
Dernière édition:
Re : Faire un tri spécifique A, R, D, V, 10, ...

Re marmotte,

Apparemment, on est obligé de créer une liste personnalisée ce que, à priori, j'aurais souhaité ne pas faire sur d'autres ordinateurs que le mien.

Curieux, car j'ai écrit au post #3 (sans doute passé à la trappe) :

Si l'on préfère ne pas créer de liste personnalisée :
(...)

Allo ???

Edit : salut bh2, Hasco, à votre santé 🙂

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour