Tri A à Z - lettres & nombres
Résolu/Fermé
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
-
13 déc. 2018 à 14:58
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 - 27 déc. 2018 à 16:37
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 - 27 déc. 2018 à 16:37
A voir également:
- Tri A à Z - lettres & nombres
- Code ascii de a à z - Guide
- Excel trier de a à z ne fonctionne pas - Guide
- Logiciel tri photo gratuit - Guide
- Code binaire des nombres - Guide
- Z-library - Accueil - Services en ligne
8 réponses
JCB40
Messages postés
2961
Date d'inscription
lundi 2 juillet 2018
Statut
Membre
Dernière intervention
17 décembre 2024
464
13 déc. 2018 à 15:02
13 déc. 2018 à 15:02
Bonjour
Ta demande n'est pas très explicite,un extrait de ton fichier anonymé serait le bienvenu.
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
Ta demande n'est pas très explicite,un extrait de ton fichier anonymé serait le bienvenu.
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse..
Cordialement
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
13 déc. 2018 à 16:23
13 déc. 2018 à 16:23
Bonjour,
Pas simple ta demande car toutes les infos sont dans la même cellule... aurais-tu la possibilité d'ajouter de nouvelles colonnes à ton tableau avec des formules automatiques qui pourrait scinder ton nom d'article en différente colonne puis ensuite mettre un tri sur ces nouvelles colonnes comme ça tu peux ajouter différents niveau de tri. Ces colonnes peuvent être cachées afin de ne pas te modifier l'aspect de ton tableau et serviront uniquement a actualiser le tri.
Pas simple ta demande car toutes les infos sont dans la même cellule... aurais-tu la possibilité d'ajouter de nouvelles colonnes à ton tableau avec des formules automatiques qui pourrait scinder ton nom d'article en différente colonne puis ensuite mettre un tri sur ces nouvelles colonnes comme ça tu peux ajouter différents niveau de tri. Ces colonnes peuvent être cachées afin de ne pas te modifier l'aspect de ton tableau et serviront uniquement a actualiser le tri.
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
13 déc. 2018 à 16:51
13 déc. 2018 à 16:51
Voici peut être une solution :
https://www.cjoint.com/c/HLnpTxm0m4N
La formule extrait les 3 principaux éléments de ta chaine de caractère et ensuite la fonction tri fait le reste comme suit
Le premier élément est configurer pour sortir jusqu'à 3 chiffres maximum
exemple
si x12produit-b >>> la formule donnera 12 / produit / b
si x120produit-b >>> la formule donnera 120 / produit / b
si x1200produit-b >>> la formule donnera : 120 / 0produit / b
Quel est le nombre de chiffre maximum pour ce premier nombre dans ton code produit?
Jc
https://www.cjoint.com/c/HLnpTxm0m4N
La formule extrait les 3 principaux éléments de ta chaine de caractère et ensuite la fonction tri fait le reste comme suit
Le premier élément est configurer pour sortir jusqu'à 3 chiffres maximum
exemple
si x12produit-b >>> la formule donnera 12 / produit / b
si x120produit-b >>> la formule donnera 120 / produit / b
si x1200produit-b >>> la formule donnera : 120 / 0produit / b
Quel est le nombre de chiffre maximum pour ce premier nombre dans ton code produit?
Jc
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
15 déc. 2018 à 17:19
15 déc. 2018 à 17:19
Bonjour,
Merci pour vos réponses.
Juste ici un exemple :
https://www.cjoint.com/c/HLpqs6ptw3v
Feuille 1 : tarif fournisseur
Feuille 2 : notre tarif
Merci,
Cordialement,
Merci pour vos réponses.
Juste ici un exemple :
https://www.cjoint.com/c/HLpqs6ptw3v
Feuille 1 : tarif fournisseur
Feuille 2 : notre tarif
Merci,
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58761
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
16 déc. 2018 à 02:31
16 déc. 2018 à 02:31
Bonjour Averroz.
Comme tu l'as constaté, il y a eu un choix très malheureux dans le codage de vos produits. Si son auteur avait réfléchi à la manière dont cette base allait être exploitée, il aurait choisi
produit-a-x001
produit-a-x003
produit-a-x006
produit-a-x012
produit-a-x018
produit-a-x024
produit-b-x001
produit-b-x003
et il n'y aurait aucun problème ...
Est-il possible de refaire votre codification ?
Et à quoi le x en début de vos codes ? Trouve t'on parfois une autre lettre ?
Comme tu l'as constaté, il y a eu un choix très malheureux dans le codage de vos produits. Si son auteur avait réfléchi à la manière dont cette base allait être exploitée, il aurait choisi
produit-a-x001
produit-a-x003
produit-a-x006
produit-a-x012
produit-a-x018
produit-a-x024
produit-b-x001
produit-b-x003
et il n'y aurait aucun problème ...
Est-il possible de refaire votre codification ?
Et à quoi le x en début de vos codes ? Trouve t'on parfois une autre lettre ?
Raymond PENTIER
Messages postés
58761
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
17 décembre 2024
17 254
16 déc. 2018 à 03:12
16 déc. 2018 à 03:12
(suite)
en conservant votre code, il faudrait insérer une colonne en D avec la formule
=STXT([@nom];2;999)
une colonne en E avec la formule
=CNUM(STXT([@[code 1]];1;TROUVE(" ";[@[code 1]];1)))
et une colonne en f avec la formule
=STXT([@[code 1]];TROUVE(" ";[@[code 1]];1)+1;999)
ce qui donne
1 Château Barde Haut 2012 150 cl AOC St-Emilion Grand Cru Classé Rouge Vin Rouge en D,
1 en E2 et
Château Barde Haut 2012 150 cl AOC St-Emilion Grand Cru Classé Rouge Vin Rouge en F2.
On peut alors faire un tri personnalisé sur la colonne F puis sur la colonne E
en conservant votre code, il faudrait insérer une colonne en D avec la formule
=STXT([@nom];2;999)
une colonne en E avec la formule
=CNUM(STXT([@[code 1]];1;TROUVE(" ";[@[code 1]];1)))
et une colonne en f avec la formule
=STXT([@[code 1]];TROUVE(" ";[@[code 1]];1)+1;999)
ce qui donne
1 Château Barde Haut 2012 150 cl AOC St-Emilion Grand Cru Classé Rouge Vin Rouge en D,
1 en E2 et
Château Barde Haut 2012 150 cl AOC St-Emilion Grand Cru Classé Rouge Vin Rouge en F2.
On peut alors faire un tri personnalisé sur la colonne F puis sur la colonne E
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
16 déc. 2018 à 09:12
16 déc. 2018 à 09:12
Bonjour Averroz,
Voici une solution à tester sur ta base de produit complète :
https://www.cjoint.com/c/HLqidBMuJkN
J'ai créé des fonctions VBA qui permettent d'analyser ta chaine de caractère et d'en extraire les informations suivantes :
- conditionnement
- appellation
- millésime
- contenance
J'ai donc extrait ces 4 informations dans 4 colonnes différentes pour ensuite configurer un tri dans l'ordre de priorité suivant : appellation > millésime > contenance > conditionnement
Voici les codes des différentes fonction :
A coller dans un module de l'interface VBA de ton classeur ([Alt + F11] pour y accèder > Insertion > Module) tu colles ces codes dans la fenêtre qui s'est ouverte puis tu ferme l'interface VBA.
Ensuite dans ton tableau tu appelles les fonctions comme une formule classique dans des nouvelles colonnes :
=conditionnement([@[Produit - ID]])
=appellation([@[Produit - ID]])
=millesime([@[Produit - ID]])
=contenance([@[Produit - ID]])
Sélectionnes les 4 nouvelles colonnes créer > onglet"Données" > "Grouper"
Les 4 colonnes sont groupées et peuvent etre cachées en cliquant sur le "-"
Et voici pour finir la configuration du tri :
En revanche, as-tu des produits sans millésime dans ta base de données?
Si oui, comment sont-ils codés en colonne A? Car pour que les fonctions ci-dessus fonctionnent correctement il faut que les codes commencent par "X" + le conditionnement en numérique et que le millésime comportent 4 caractères.
Bon dimanche
Jc
Voici une solution à tester sur ta base de produit complète :
https://www.cjoint.com/c/HLqidBMuJkN
J'ai créé des fonctions VBA qui permettent d'analyser ta chaine de caractère et d'en extraire les informations suivantes :
- conditionnement
- appellation
- millésime
- contenance
J'ai donc extrait ces 4 informations dans 4 colonnes différentes pour ensuite configurer un tri dans l'ordre de priorité suivant : appellation > millésime > contenance > conditionnement
Voici les codes des différentes fonction :
Function conditionnement(nom As String) Start = 2 cpte = 0 Do While IsNumeric(Mid(nom, 2 + cpte, 1)) cpte = cpte + 1 Loop conditionnement = Mid(nom, 2, cpte) * 1 End Function Function appellation(nom As String) Start = 2 cpte = 0 Do Until Not IsNumeric(Mid(nom, Start, 1)) Start = Start + 1 Loop Do While Not IsNumeric(Mid(nom, Start + cpte, 1)) cpte = cpte + 1 Loop appellation = Mid(nom, Start, cpte) End Function Function millesime(nom As String) Start = Len(nom) cpte = 0 Do While IsNumeric(Mid(nom, Start - cpte, 1)) cpte = cpte + 1 Loop millesime = Mid(nom, Start - cpte + 1, 4) * 1 End Function Function contenance(nom As String) Start = Len(nom) cpte = 0 Do While IsNumeric(Mid(nom, Start - cpte, 1)) cpte = cpte + 1 Loop contenance = Right(nom, cpte - 4) * 1 End Function
A coller dans un module de l'interface VBA de ton classeur ([Alt + F11] pour y accèder > Insertion > Module) tu colles ces codes dans la fenêtre qui s'est ouverte puis tu ferme l'interface VBA.
Ensuite dans ton tableau tu appelles les fonctions comme une formule classique dans des nouvelles colonnes :
=conditionnement([@[Produit - ID]])
=appellation([@[Produit - ID]])
=millesime([@[Produit - ID]])
=contenance([@[Produit - ID]])
Sélectionnes les 4 nouvelles colonnes créer > onglet"Données" > "Grouper"
Les 4 colonnes sont groupées et peuvent etre cachées en cliquant sur le "-"
Et voici pour finir la configuration du tri :
En revanche, as-tu des produits sans millésime dans ta base de données?
Si oui, comment sont-ils codés en colonne A? Car pour que les fonctions ci-dessus fonctionnent correctement il faut que les codes commencent par "X" + le conditionnement en numérique et que le millésime comportent 4 caractères.
Bon dimanche
Jc
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
26 déc. 2018 à 17:41
26 déc. 2018 à 17:41
Bonsoir,
Je viens d'essayer ce que tu as proposé, dès que je mets cette fonction dans la colonne : =appellation([@[Produit - ID]])
ça plante...
J'ai essayé avec deux PC différents, et leurs config n'est pas dégueu ( i7, 16go de ram etc )
Je ne vois pas pourquoi ..
Merci !
Bonne soirée, et bonnes fêtes
Je viens d'essayer ce que tu as proposé, dès que je mets cette fonction dans la colonne : =appellation([@[Produit - ID]])
ça plante...
J'ai essayé avec deux PC différents, et leurs config n'est pas dégueu ( i7, 16go de ram etc )
Je ne vois pas pourquoi ..
Merci !
Bonne soirée, et bonnes fêtes
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
Modifié le 26 déc. 2018 à 20:30
Modifié le 26 déc. 2018 à 20:30
Bonsoir Averroz,
Qu'appelle-tu "ca plante"?! Une capture d'écran? Un peu plus d'informations seraient bienvenues pour pouvoir t'aider davantage.
Petits points de contrôle :
- tu as bien copié les codes ci-dessus dans un module VBA de ton classeur?
- tu as bien fais appel à ces différentes fonctions dans de nouvelles colonnes faisant référence au texte contenu dans la colonne A, exemble :
pour créer la colonne "conditionnement"
- sélectionne "H1"
- saisi "conditionnement" la colonne est créée dans ton tableau
- sélectionne "H2"
- saisie "=conditionnement(" puis clique sur A1 puis saisi ")" puis valide la formule avec "entrée"
Si tu as bien fait tout ça alors poste une capture d'écran du plantage que ça occasionne
Bonne soirée
Jc
Qu'appelle-tu "ca plante"?! Une capture d'écran? Un peu plus d'informations seraient bienvenues pour pouvoir t'aider davantage.
Petits points de contrôle :
- tu as bien copié les codes ci-dessus dans un module VBA de ton classeur?
- tu as bien fais appel à ces différentes fonctions dans de nouvelles colonnes faisant référence au texte contenu dans la colonne A, exemble :
pour créer la colonne "conditionnement"
- sélectionne "H1"
- saisi "conditionnement" la colonne est créée dans ton tableau
- sélectionne "H2"
- saisie "=conditionnement(" puis clique sur A1 puis saisi ")" puis valide la formule avec "entrée"
Si tu as bien fait tout ça alors poste une capture d'écran du plantage que ça occasionne
Bonne soirée
Jc
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
27 déc. 2018 à 15:19
27 déc. 2018 à 15:19
Bonjour,
Merci pour ton retour, je n'ai pas de message d'erreur, en haut de la fenêtre j'ai " ne répond pas " et ça dure indéfiniment, je dois fermer Excel et le re ouvrir.
Ça me fait seulement ça avec la colonne " appellation " les 3 autres c'est ok.
PS : j'ai bien copié les codes dans un module VBA
J'ai bien fait appel à ces différentes fonctions dans de nouvelles colonnes.
Je re essaie sur un fichier propre.
Bonne journée
Merci pour ton retour, je n'ai pas de message d'erreur, en haut de la fenêtre j'ai " ne répond pas " et ça dure indéfiniment, je dois fermer Excel et le re ouvrir.
Ça me fait seulement ça avec la colonne " appellation " les 3 autres c'est ok.
PS : j'ai bien copié les codes dans un module VBA
J'ai bien fait appel à ces différentes fonctions dans de nouvelles colonnes.
Je re essaie sur un fichier propre.
Bonne journée
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
27 déc. 2018 à 16:02
27 déc. 2018 à 16:02
Re Bonjour,
Ça a fonctionné pour la colonne " appellation "
Cependant, l'ordre est tous les produits en x12 puis tous les produits en x18, puis tous les produits en x24 puis 1,3,6
par exemple :
X12Canongaffeliere201675
X12Cantemerle201675
X12Cantenacbrown201675
X12Cantermerle201175
X12Capdet201275
X12Capdet201475
Merci,
Ça a fonctionné pour la colonne " appellation "
Cependant, l'ordre est tous les produits en x12 puis tous les produits en x18, puis tous les produits en x24 puis 1,3,6
par exemple :
X12Canongaffeliere201675
X12Cantemerle201675
X12Cantenacbrown201675
X12Cantermerle201175
X12Capdet201275
X12Capdet201475
Merci,
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
27 déc. 2018 à 16:25
27 déc. 2018 à 16:25
Bonjour Averroz,
Je n'ai pas compris ton dernier message, ça a fonctionné mais pas pour tous les produits c'est ça?
Je n'ai pas compris ton dernier message, ça a fonctionné mais pas pour tous les produits c'est ça?
Averroz
Messages postés
10
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
6 août 2023
22 déc. 2018 à 10:12
22 déc. 2018 à 10:12
Bonjour à tous,
Merci pour votre retour, je suis désolé je ne suis pas revenu vers vous je n'ai pas eu le temps de regarder vos réponses, je m'y penche ce weekend, je vous tiens au courant.
Merci,
Bon weekend à vous
Merci pour votre retour, je suis désolé je ne suis pas revenu vers vous je n'ai pas eu le temps de regarder vos réponses, je m'y penche ce weekend, je vous tiens au courant.
Merci,
Bon weekend à vous