Fractionner une cellule en utilisant des éléments en gras

Fermé
Pepef - Modifié par Pepef le 31/08/2016 à 01:10
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 - 31 août 2016 à 06:20
Bien le bonjour à tous,

Ma question est plus dans un premier temps d'identifier si mon problème est solvable par une macro ou autres outils.

Je viens de récuperer de la part d'un client un fichier de plus de 20 000 entrées se décomposant de cette manière :

Clay 0.00- 0.50m Orangy-brown clays. Unknown 0.50- 19.00m Brown fine grained rock. Assumed to be weathered and oxidised equivalent of diorite described below. Diorite 19.00- 27.00m Dark gungey green-grey diorite microporphyry. Weakly prophylitically altered. End of Hole 27.00- Air Core Refusal.


Le petit soucis est quand dans l'état, ça ne me sert pas à grand chose. Il faudrait que j'ai chaque "couche" dans une cellule différente pour que je puisse lancer ma macro qui identifie chaque élément.

Est ce qu'il est possible de fractionner cette cellule en plusieurs, une nouvelle dès qu'on atteint un élément en gras ?
Ou alors utilisant une bibliothèque de mot (dans ce cas là : "Clay", "Unknown", "Diorite" etc)

Merci d'avance !
A voir également:

2 réponses

Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
31 août 2016 à 02:15
Bonjour.

Ce sera difficile, car ton mot-clé "clay" se retrouve deux fois, et "diorite" trois fois ! Cela empêche d'utiliser les fonctions TROUVE, CHERCHE et STXT de manière fiable. En effet avec l'entrée en A6, la formule
=STXT(A6;CHERCHE("unknown";A6;1);CHERCHE("diorite";A6;1)-CHERCHE("unknown";A6;1))
s'arrête à la première occurrence du mot "diorite" en affichant "Unknown 0.50- 19.00m Brown fine grained rock. Assumed to be weathered and oxidised equivalent of " donc en perdant la suite "described below. " !

D'autre part il n'existe aucune fonction capable de repérer un caractère en gras dans une phrase ...
0
C'est bien ce qu'il me semblait pour ta dernière phrase... Bien triste... ^^.

Pour le moment la manière la plus rapide : exporter sur excel, séparer manuellement, importer sur excel...
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090 > Pepef
31 août 2016 à 02:48
Pourquoi exporter ? Le fichier dont tu parles n'est donc pas sur Excel ?
0
Moi être un peu fatigué..
Je voulais dire :

Pour le moment la manière la plus rapide : exporter sur WORD, séparer manuellement, importer sur excel...
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090 > Pepef
31 août 2016 à 03:31
Mais pourquoi, diable ?
On sépare aussi bien sur Excel que sur Word !
Surtout que tu dis avoir 20 000 entrées ...
0
séparer sur plusieurs cellules sur excel ? Je n'ai pas trouvé de façon aussi rapide que sur word, puis collage special
0
C-Claire Messages postés 4014 Date d'inscription samedi 8 novembre 2014 Statut Membre Dernière intervention 3 octobre 2016 2 212
Modifié par C-Claire le 31/08/2016 à 06:42
Bonjour Pepef,

"Pour le moment la manière la plus rapide : exporter sur WORD, séparer manuellement, importer sur excel..."
Sous Word, tu peux gagner beaucoup plus de temps que de le faire manuellement, en utilisant la commande "Remplacer".

Tu peux procéder ainsi après avoir copié/collé le contenu de ton document dans Word mais il faut que tu conserves le gras :
1re étape - Ajouter un caractère de séparation pour identifier les futures colonnes ;
- curseur au début du document, appuie sur [Ctrl] [H] pour ouvrir la boîte de dialogue "Remplacer"
- clique sur le bouton [Plus >>]
- en bas, clique sur [Format] | "Police" et sélectionne "Gras"
- clique dans le champ "Remplacer par" et tape ou copie les 3 caractères suivants ;^&
- valide en cliquant sur le bouton [Remplacer tout]
Tu auras donc un ";" devant chaque mot en gras (y compris devant le 1er mais cela sera vite corrigé).

2e étape - Convertir le texte en tableau à l'aide des séparateurs :
- sélectionne tout ton texte, dans l'onglet [Insertion], clique sur "Tableau" puis sur "Convertir texte en tableau" dans la liste déroulante
- coche "Points-virgules" dans la section "Séparer le texte au niveau des".
Si tous les paragraphes étaient normalisés comme celui de ton exemple, tu devrais obtenir 4 colonnes. Supprime la première qui est vide, sélectionne le tableau et colle-le dans Excel.

Comme souvent, c'est plus long à écrire qu'à faire ;-)

PS : s'il y a des ";" déjà présents dans ton texte, remplace-les par un autre symbole comme le "§" dans le "Remplacer" et dans la conversion en tableau.

PS2 : en tout 1er lieu, quand tu colles ton fichier Excel dans Word, ne fais pas un collage spécial. Colle-le normalement, tu vas donc avoir un tableau d'une cellule par paragraphe. Convertis le tableau en texte (onglet [Disposition] | "Convertir en texte", laisse "Marques de paragraphe" cochée.

C-Claire
0