Menu

Extraire texte+chiffre dans une colonne

RenFongTen - 8 févr. 2018 à 07:45 - Dernière réponse : Vaucluse 22042 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention
- 9 févr. 2018 à 10:19
Bonjour à tous,

Je suis nouvelle ici,

En ce moment je dois travailler sur une base de donnée très mal remplie qui me file un mal de crâne.

Je dois m'occuper d'un catalogue de supermarché , et la description des produits se fait souvent sur une ligne, ce qui ne m'arrange pas pour la mise en page. (Et comme il y a trop de produits, remettre tout en forme prendrait trop de temps)

les lignes sont du genre

DANAO PECHE 50 CL
CHAMPIGNON DE PARIS
FROMAGE PITON DES NEIGES
DANETTE FLAN VANILLE 12 X 100 G
LAIT CREME BRULEE 100G

Ce qui m'intéresserait c'est de faire deux colonnes : une à gauche avec le texte , une a droite avec le poids. Sachant que pour le poids il faudrait filtrer la cellule nombre +"g" ou nombre +"cl" ou nombre "X" nombre "g" quand il y a un lot de produits

Pensez vous que ce serait faisable vu que j'ai cru comprendre qu'on pouvait extraire du texte dans une cellule?

Merci pour votre retour!


Afficher la suite 

Votre réponse

17 réponses

Vaucluse 22042 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - Modifié par Vaucluse le 8/02/2018 à 08:09
0
Merci
Bonjour
voyez cette proposition, mais je ne garantis pas le résultat dans tous les cas suivant les textes
(par exemple elle ne fonctionne pas correctement s'il y a dans les textes avant la quantité des chiffres précédés d'un blanc ou s'il n'y a pas de blanc entre le texte et le premier chiffre de la quantité)
https://mon-partage.fr/f/oIqMhhK6/
revenez si ça ne convient pas
crdlmnt

Bonjour Vaucluse,

Votre proposition est pas mal, mais des fois l'extraction prends des chiffres qui n'ont rien à avoir avec le poids (ex : 20% de matière grasse dans un titre, 20% gratuit dans un autre) et sur la colonne de gauche le texte est tronqué de quelques lettres

En fait j'aimerais extraire dans les cellule des données comme 20 g , 3 kg, 6 X 5 cl... Uniquement prendre un chiffre quand il est devant des unités de poids
Je sais que je n'arriverais pas sur tout et que je devrais repasser à la main parce que ça a été tapé n'importe comment. Des fois c'est séparé par des espaces, d'autres fois non, il y a des coquilles partout ....

Je pense que le plus simple est que je vous renvoie mon fichier avec ma liste de produits
https://mon-partage.fr/f/c1A9rnOC/


Merci pour votre précieuse aide
Commenter la réponse de Vaucluse
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - Modifié par michel_m le 8/02/2018 à 10:29
0
Merci
Bonjour Renfongten, Vaucluse
Bienvenue, renfongten, à bord du titanic!
Ca va, Vaucluse?

j'avais trouvé une solution par VBA mais changement ...

questions:
1/que fait dans ce cas (entre autres)
TARTINABLE SAUMON 120G GUYADER
Guyader ???
OU
PIMENT RGE FRAIS ANANAS 90G soleil créole
soleil créole ???


2/ Combien de lignes dans la réalité ?




Vaucluse 22042 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 11:01
Salut Michel, ça roule comme un vieux! Et toi? comme un jeune, je suppose :l-))

sur le sujet, je pose la même question que toi, mais je te laisse faire en VBA, parce que je pense pas trouver de solution très simple pour ressortir les valeurs num avant un texte d'unité. Cela dépend du nombre de chiffres à sortir.

si on en croit le modèle, il s'agit de diviser les textes en B pour obtenir ce qui est affiché en C et en D

si problème avec VBA, je tenterais, mais ça risque d'être plus qu'acrobatique

Alors à toi de jouer
Bonne journée

Bien cordialement
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 11:14
ben comme toi, je vieillis le plus doucettement possible...
ci joint, le vba suivant la 1° demande: ca peut-^tre servir pour la suite mais...
https://mon-partage.fr/f/03r4Ml9Q/
Bonjour Michel,

Justement si il y a un nom après la mention du poids, cela correspond à la marque du produit.
Et c'est une donnée que je dois faire afficher sur mon catalogue, d'où l'idée de mettre sur une colonne à part pour séparer les indications concernant le poids du produit.

Dans le doc que j'ai envoyé , vous avez toutes les lignes (il y a environ 400 produits)
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 11:33
Bon, on va voir, mais patience, car c'est loin d'^tre évident...
Commenter la réponse de michel_m
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 11:18
0
Merci
pour Renfongten,

Nous dire toutes les différentes unité de mesure, G, Grm, CL, L, Kg....
Bonjour Michel,

Pas de soucis

De ce que j'ai vu sur les descriptions des produits il faudrait isoler les unités G, GR, GRS, KG, CL, L

Merci encore
Commenter la réponse de michel_m
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 17:13
0
Merci
Bonsoir,

Bon, pas mal de cas traités avec succès mais hyper-casse g.... ma tite t^te sature

pourquoi le même article avec Plusieurs références? ?
entre autres:
50500000102	PIMENT RGE FRAIS ANANAS 90G soleil créole
50500000101 PIMENT RGE FRAIS ANANAS 90G soleil créole
50500000106 PIMENT RGE FRAIS ANANAS 90G soleil créole
50500000100 PIMENT RGE FRAIS ANANAS 90G soleil créole
50500000104 PIMENT RGE FRAIS ANANAS 90G soleil créole
50500000105 PIMENT RGE FRAIS ANANAS 90G soleil créole


a demain

Vaucluse 22042 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 8 févr. 2018 à 18:06
:-)))
la mienne aussi
https://mon-partage.fr/f/CzOH6VIA/
il y a des cas qui ne sont pas traitables par exemple celui des X car ils sont à la fois dans les textes, au milieu des libellés et devant la quantité à ressortir
il y a d'autre cas de figures, mais ils m'ont surement échappés
principe:
rentrer dans la colonne Liste unit les repères susceptibles de détecter la limite de sectionnement du texte, mais sans le risque de confusion avec d'autres parties du texte (problème du X, pas assez spécifié)
et c'est pour ça par exemple que la liste compte des 0g 1g 2g Etc.. pour ne pas les confondre avec un G courant
il est possible de rajouter des références à la place des zzzz, mais il ne doit y avoir aucune cellule vide de 1 à 100 pour ne pas casser le système

ceci dit, j'ai fait joujou avec des formules, mais sur un nombre considérable de lignes, je crois que vous pouvez aller rendre unh grand café avec une douzaine de croissant e temps que le bouot soit fait
c'était pour la gloire

pour moi, c'est tout ce que je peux vous proposer

crdlmnt
Bonjour Michel ,

Je t'avoue que comme je ne bosse pas dans cette enseigne, je n'en sais rien. Je dois juste référencer des produits pour les afficher dans un catalogue. Tant qu'ils ont un code de référencement différent, je les gardes. Tant pis si ils sont en doublon.

Je consciente que ma demande est pointue, et que ça ne résoudras pas tout les problèmes de cette BDD. Je veux juste gagner du temps pour bien classer ces foutus produits .
Commenter la réponse de michel_m
0
Merci
Bonjour,

Pour info, j'ai testé avec un autre forum qui m'a donné une formule matricielle qui je trouve correspond le plus à mes problèmes (ça prend mieux les X)

Je vous la copie

Colonne gauche exécuter avec Ctrl+Maj+Entrée
SIERREUR(STXT(celluleencours;1;MIN(SI(ESTNUM(1*STXT(celluleencours;LIGNE(INDIRECT("1:"&NBCAR(celluleencours)));1));LIGNE(INDIRECT("1:"&NBCAR(celluleencours)))))-2);celluleencours)


Colonne droite exécuter avec Ctrl+Maj+Entrée
SIERREUR(DROITE(celluleencours;NBCAR(celluleencours)-NBCAR(colonnegauche)-1);"")

Bonne journée à vous
Commenter la réponse de RenFongTen
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 9 févr. 2018 à 08:32
0
Merci
Bonjour
Donc, je laisse tomber ?
Bonjour Michel

Je pense que je vais procéder autrement

Comme mon client vient de me demander de mettre les titres en minuscule et la marque des produits en majuscule. Je vais m'inspirer de ce qu'à fait Vaucluse, c'est à dire faire un liste des marques et faire une formule conditionnelle du genre si=NB.SI(liste); récupérer marque

Je voudrais faire trois colonnes : une avec le poids, une avec la marque, et autre qui sera le reste du texte tapée dans la cellule.
Comme ça ça évitera d'avoir des colonnes avec "90 g soleil créole"

J'attends qu'on me renvoie la liste entière mais pourrais tu tester cette idée ?

Si par exemple je te donne quelques marques au hasard

SOLEIL CREOLE
VB REUNION
MASCARIN
ROYAL BOURBON
ST ROLAN

Merci encore, après, je ne vous embête plus, promis !
michel_m 15301 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 9 févr. 2018 à 10:10
re,

J'avais presque terminé (essais très longs) avec en VBA des regexp (expressions régulières) restait le problème des caractères spéciaux comme le point et l’astérisque dans des expressions de poids et tu changes encore ta demande
Désolé
peut-^tre à une prochaine
Vaucluse 22042 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 25 mai 2018 Dernière intervention - 9 févr. 2018 à 10:19
Bonjour (et salut michel)
moi je m'arrête à tout détecter si les valeurs sont précédées d'un blanc, mais cela ne fonctionne pas s'il y a plusieurs valeurs dans e cas dans le même texte
à priori vous devriez a adapter la formule que vous proposez en remplaçant les info cellules par les adresse correspondante
elle semble effectivement fonctionner, même si ce n'est pas complet
la 1° en matricielle, mais c'est inutile pour la seconde

crdlmnt
Commenter la réponse de michel_m