Tri auto par nom, couleur cellule, ordre croissant

Bonjour,

J'imagine que le sujet a déjà été traité sur le forum mais l'urgence et la faible maîtrise de VBA m'oblige à poser la question. Dans le classeur excel (ci joint) j'ai un tableau simplifié avec une colonne REFERENCE et une colonne NOM.

Le tableau d'origine comporte évidemment des centaines de lignes avec une dizaine de colonnes mais j'aimerai juste comprendre le fonctionnement.

Et bien je souhaiterai que les références puissent se trier automatiquement par ordre croissant en fonction de la référence et de sa couleur associée. Exemple: toutes les références "B" son associées au bleu , "VL" à la couleur jaune, etc...

Ainsi lorsque je crée une nouvelle référence par exemple "GR05" au moyen d'un formulaire de saisie ou si j’insère une ligne ailleurs dans le tableau, et bien elle doit être automatiquement colorée en orange, et triée par ordre croissant avec les autres références "GR". Si je crée "VG06" elle doit se colorer en vert et être triée avec les autres "VG" juste après "VG05".

Que se passera-t-il si je crée une nouvelle référence inexistante dans le tableau d'origine?

Voilà j'espère avoir été assez précis, en tout cas j'imagine que je ne vais pas m'en sortir sans une macro.

Merci d'avance pour vosréponses

44exemple.xlsx (13.32 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

103exemple-v1.xlsm (35.73 Ko)

Bonjour,

En effet cela semble fonctionner comme je le souhaitais. Je vais maintenant essayer d'adapter la macro à tout le tableau. Le seul détail c'est par exemple quand je crée une nouvelle référence avec une autre couleur par exemple "KG01" et "KG08" que je colore en gris, et que je l'insère parmi les autres couleurs n'importe où dans le tableau (sauf à la fin), et bien elles reprennent la couleur de la référence du dessus. Par contre quand je la crée la nouvelle ref à la fin du tableau à la suite des autres tout va bien. En tout cas merci pour l'astuce qui m'a beaucoup aidé.

Bonjour,

Il y a quelque temps j'ai demandé de l'aide pour créer une macro qui trie des des références par ordre croissant et associe automatiquement une couleur à chaque nouvelle référence créée d'un même groupe, couleur paramétrée à la création du groupe de référence.

Je remercie "gmb" de m'avoir aidé dans cette démarche mais je me demandais s'il était possible de bidouiller ce code pour trier les référence par ordre croissant par rapport "au numéro" indépendamment du groupe ou couleur, tout en gardant l'affectation automatique de la couleur pour une nouvelle ref d'un groupe donné.

Exemple: ça doit ressembler à quelque chose du genre, B001, B002, GR003, GR004, VG005, ..........., VL999 voir (fichier excel ci-joint)

Merci

33exemple-v1.xlsm (17.92 Ko)

Bonjour

Dans cette nouvelle version, toute nouvelle donnée dans le tableau voit sa référence prendre la couleur que tu auras donnée dans une légende de couleurs, où qu’elle soit positionnée.

Cela te convient-il ?

49exemple-v2.xlsm (38.50 Ko)

Bonjour,

Ah oui je vois, vous avez réglé le problème de l'affectation de nouvelles couleurs. Ce n'était pas très gênant puisque le formulaire de saisie permet de ne pas agir directement sur le tableau et donc de créer des incohérences. Du coup je ne voulais pas vous embêter avec ça. Mais c'est bon à savoir. Merci

Le problème vient du fait que la personne qui m'a demandé de faire le tri par ordre croissant et par couleur n'avait pas spécifié que celui-ci devait se faire par rapport au numéro des références (tout confondu), indépendamment de la "couleur" ou des "lettres". Du coup malentendu.

La macro que vous aviez faite au début correspond tout à fait à ce que j'avais en tête, ce qui change c'est le tri et seulement par ordre de numéro croissant, 001,002,003....... jusqu'à 999 par exemple.

Mais après peut être que tout n'est pas possible non plus, ce que je comprends tout à fait.

Mais peut être qu'il faut extraire la valeur numérique de la chaîne de caractère dans une colonne (cachée) à part et trier le tout en fonction de cette colonne qui ne contiendrait que des nombres.

J'ai trouvé un code VBA qui permet de le faire mais je sais pas où l'intégrer dans la macro actuelle. Qu'en pensez-vous? Merci

Function EXTNUM(Ref As Range)

S = Ref.Value

For i = 1 To Len(S)

If IsNumeric(Mid(S, i, 1)) Then

S = Mid(S, i)

Exit For

End If

Next

EXTNUM = Val(S)

End Function

Nouvelle version.

Bye !

49exemple-v3.xlsm (38.63 Ko)

Vous avez associé la macro au tableau de quelle feuille? Lorsque je clique sur Le bouton Trier de la feuille 4 j'ai une erreur d'exécution du code et la colonne se colore en noir. Dans la feuille 1 une rien ne se passe non plus. J'ai loupé quelque chose peut être?

celex a écrit :

Vous avez associé la macro au tableau de quelle feuille?

A celui de la feuille "Origine"

Bye !

Je vois bien le changement au niveau du code mais au niveau visuel ça reste pareil, le tri est toujours effectué par ordre alphabétique, par couleur et ensuite par numéro. Or c'est par numéro que le tri doit se faire indépendamment des autres caractéristiques.

Peut être que les numéros doivent être d'abord extraits de la référence, être triés par ordre croissant et ensuite trier le reste du tableau par rapport à cette colonne. Le résultat doit ressembler normalement à ça: fichier ci-joint "newexemple".

C'est vrai que c'est ambiguë cette histoire, le référencement à été fait à la va vite au début, du coup pour l'instant il faut adapter les tableaux excel par rapport à cette codification.

1newexemple.xlsx (9.25 Ko)
celex a écrit :

Or c'est par numéro que le tri doit se faire indépendamment des autres caractéristiques.

Alors montre moi exactement le résultat que tu veux avoir.

Bye !

Dans le fichier excel ci-joint j'ai un tableau "Origine" avec des références éparpillées. Le tri doit donner le tableau de la feuille "Résultat".

Bien évidemment, si une nouvelle référence (d'un groupe déjà prédéfini) est entrée par le biais d'un formulaire, le tri doit la classer en fonction de son numéro et lui affecter la couleur du groupe de référence, comme la macro à l'origine. Voilà, voilà

6newexemple.xlsm (10.71 Ko)

Deux nouvelles versions.

Bye !

6exemple-v4.xlsm (40.90 Ko)

Bonjour,

C'est exactement ça, j'ai adapté la macro 1 du fichier "exemple v4" à mon "FICHIER_FINAL" (fichier joint ci-contre) en essayant de changer les plages de données mais j'ai dû foirer un truc quelque part vers la fin du code parce que j'ai le tableau des couleurs qui se colle sur le plus grand après le tri et l'ensemble de la colonne A prend la couleur bleu. J'ai tourné autour du pot mai je vois pas d'où vient le problème. Encore ça et c'est normalement fini.

4fichier-final.xlsm (45.23 Ko)

Nouvelle version à tester.

J'ai ajouté quelques commentaires dans la macro. Si ça peut te servir...

Bye !

175fichier-final-v5.xlsm (69.91 Ko)

D'accord je vois, par contre quand je clique sur trier, le côté droit du tableau se décale et englobe aussi la colonne "J" alors que dans l'exemple d'avant la forme du tableau restait la même et la colonne "J" restait cachée.

Nouvelle version à tester.

Bye !

Rechercher des sujets similaires à "tri auto nom couleur ordre croissant"