Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Découpe texte d'une cellule en plusieurs cellule

  • Initiateur de la discussion Initiateur de la discussion Tifred
  • Date de début Date de début

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 !

T

Tifred

Guest
Bonjour tout le monde,

Voilà mon problème:
j'aimerais découper le texte d'une cellule pour le repartir dans plusieurs cellules.
Le texte est de type NOM(en majuscule), dosage (= dose + unité) forme (comprimés, gellule, crème...)

Comment faire pour:
Prendre le nom en majuscule de la cellule pour le copier dans une autre cellule,
Prendre le dosage (qui commence par un chiffre après le nom) et le mettre dans un autres cellules
Trouvé la forme dans la cellule (texte standardisé type 'comprimé''pommade'...) et le recopier dans une dernière cellule.

En gros ça correspond a regarder la cellule comme une suite de caractères, prendre le début de la chaine de caractères qui est en majuscule et qui n'est pas en chiffre la recopier; prendre la partie après les majuscules qui est en chiffre et la recopier, rechercher les mots 'comprimé','pommade','gelule' et le recopier. Mais j'ai du mal avec la redaction VB.
 
Bonjour Tifred, Monique 🙂

Excel (au moins depuis 97) le fait presque tout seul si on fait un peu de pirouette au besoin, mais c'est béton pour les données 🙂

Tu sélectionnes ta cellulle à 'déconcaténer', tu va dans la barre de menus sur Données, Convertir, délimiter puis suivant... Tu regardes ce que ça fait et l'aide, tu peux choisir les séparateurs etc... et jouer sur le format des données.
Là ou intervient les pirouettes c'est que c'est un outil rapide, sûr et puissant... mais qui ne fait pas forcément exactement ce que tu veux, donc ensuite tu obtiens des colonnes avec 1 donnée par colonne, il t'es plus facile alors de supprimer les non significatives, d'en reconcaténer deux ou trois pour les besoins de la cause, d'affecter des mises en forme etc...
En travaillant à partir d'une copie de données bien sûr; tu ne risque rien 😉

Bon WE,

Brico
 
bonjour tifred
salut Monique
salut Bricofire

une solution par fonctions personnalisées qui suppose
1) que les separateurs soient des espaces
2) qu'il n'y ait que 3 mots concaténés [file name=tifred.zip size=8233]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/tifred.zip[/file]
 

Pièces jointes

Exemple avec les données suivantes en A1:A4
BARBE A PAPA 150 dcl fiole
LE Remède 10 plaquettes gellule
Machin 20 g pommade
Jouvence de l'abbé Souris 5 tubes crème

Pour extraire le produit
En B1 et recopie --> B4 (matricielle à valider par ctrl+maj+entrée)
=GAUCHE(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))))-2)
Pour extraire dose + unité
En C1 et recopie --> C4 (matricielle à valider par ctrl+maj+entrée)
=STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))));MAX(SI(ESTERR(TROUVE({'comprimé';'gellule';'fiole';'crème';'pommade'};A1));'';TROUVE({'comprimé';'gellule';'fiole';'crème';'pommade'};A1)))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT('1:'&NBCAR(A1)));1))*LIGNE(INDIRECT('1:'&NBCAR(A1)))))-1)
Pour extraire le conditionnement (en rajouter si besoin est dans la matrice de constantes)
En D1 et recopie --> D4 (matricielle à valider par ctrl+maj+entrée)
=STXT(A1;MAX(SI(ESTERR(TROUVE({'comprimé';'gellule';'fiole';'crème';'pommade'};A1));'';TROUVE({'comprimé';'gellule';'fiole';'crème';'pommade'};A1)));9^9)

AV - MVP [Excel]
 
Re😀écoupe texte d'une cellule en plusieurs cellul

ok merci pour les infos...
Comme il y avait un peu plus de 17000 lignes j'ai du faire au plus simple/efficace...donc éditer ma table au format *.cvs ou *.txt dans word, en insérant de façon rusée des séparateurs par la fonction rechercher/remlacer:
ex: remplacer tout les ';' par des '/' (car ';' est le séparateur que j'ai choisi) puis remplacer toutes les ', ' (i.e. ',' + 'espace') par des ';' les virgules servaient à séparer le nom et le dosage de la forme (les ',' sans espace n'étant pas affectées (ex 'dosage à 2,25 mg' n'est pas séparér en 2)...
en rouvrant le texte sous excell est en indiquant les séparateurs, les colonnes se crées effectivement toutes seules.
Pour isoler les dosages j'ai pas encore trouvé mais c'est déjà un bon boulot...
J'ai essayé avec ta formule AV mais il m'indique une erreur sur (INDIRECT(\\'1:\\'&NBCAR(...) au début de la formule

le tout étant pour faire une table de BdD j'ai donc conservé le format *.cvs (je ne travaille pas sous access)
merci pour votre aide
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
313
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…