Tri numéro ordre croissant VBA

Fermé
celexis Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 25 juillet 2016 - 25 juil. 2016 à 11:31
celexis Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 25 juillet 2016 - 25 juil. 2016 à 15:35
Bonjour,

J'ai des difficultés pour créer une procédure sur VBA qui a pour but de trier des groupes de références de produits par ordre croissant.

Alors c'est un peu particulier puisque le numéro de la référence est composée d'un préfixe avec des lettres et qui indiquent le groupe de la référence de produits, comme par exemple: B001, B002, GR003, GR004,GR005 VL006, VL007 ......jusqu'à par exemple KG999.

Alors je sais comment trier les références par ordre croissant et par groupe, d'ailleurs le mode tableau le fait déjà sans macro, mais j'ai besoin que le tri se fasse indépendamment du groupe de la référence (c'est à dire de l'ordre alphabétique des lettres, B, GR, KG, VL, etc) mais seulement par rapport aux numéros: 001, 002, 003, 004, 005 comme indiqué plus haut.
Croyez-vous que c'est possible. Merci

1 réponse

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
25 juil. 2016 à 14:17
Bonjour

Sans macro il est possible avec une formule matricielle d'extraire la partie numérique en fin de chaîne; après il ne restera qu'à trier le tableau sur cette nouvelle colonne
avec le n° de reference en A2 la formule sera :
=STXT(A2;EQUIV(VRAI;ESTNUM(CNUM(STXT(A2;LIGNE($1:$255);1)));0);99)

A valider par CTRL+MAJ+Entrée puisque c'est une matricielle; la formule se met alors automatiquement entre {} dans la barre de formules

A étirer ensuite au bas de la colonne bien sûr puis faire effectuer le tri

Cdlmnt
Via
0
celexis Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 25 juillet 2016
25 juil. 2016 à 15:35
Bonjour,

En effet, j'avais pensé au fait d'extraire la partie numérique dans une colonne à part cachée et tout trier en fonction de celle-ci.

Votre réponse m'a mis sur la piste et j'ai trouvé un code VBA qui permet de le faire, il ne me reste plus qu'à trouver un moyen de l'intégrer dans le reste de ma macro.

Merci
0