Exctraction d'une chaîne de caractère

Résolu
Saween -  
 Saween -
Bonjour à toutes et à tous,

J'essaie de faire une extraction de chaîne de caractère d'une feuille à l'autre.

Voici ma fonction: =SIERREUR(STXT(Feuil1!A2;TROUVE("Balise1";Feuil1!A2;1)+8;TROUVE("Finbalise1";Feuil1!A2;1)-(TROUVE("Finbalise1";Feuil1!A2;1)-7));"")

Dans mes cellules j'ai inséré des balises afin de récupérer ce qu'elles contiennent.

Le souci de ma fonction est que je suis obligé de lui donner une indication sur le nombre de caractère à extraire (+8 / -7), alors que je voudrais que ma fonction extrait ce qu'il y a entre les balises peut importe le nombre de caractère qu'il a été renseigné.

Merci d'avance.


A voir également:

2 réponses

Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
Bonjour ,

A quoi ressemble tes balises ?

Du type <...> </...> :

=SIERREUR(STXT(Feuil1!A2;TROUVE(">";Feuil1!A2)+1;TROUVE("<";Feuil1!A2;TROUVE(">";Feuil1!A2))-(TROUVE(">";Feuil1!A2)+1)))

Cordialement,

Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que     votre problème n'en est plus un. Fahora
0
Saween
 
J'ai exactement plusieurs balises dans une même cellule correspondant à

<Cause></Cause>
<Pblm></pblm>
Etc..
Environ 10.

Moi je veux récupérer uniquement ce qu'il y a entre ces balises.

Sauf qu'il n'y a pas toujours le même nombre de caractère.
0
Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
Donc ma solution est la bonne :)
0
Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
Je l'explique :

=SIERREUR(STXT(Feuil1!A2;TROUVE(">";Feuil1!A2)+1;TROUVE("<";Feuil1!A2;TROUVE(">";Feuil1!A2))-(TROUVE(">";Feuil1!A2)+1))) 


TROUVE(">";Feuil1!A2)+1
: trouve le 1er ">" et prend la position d'après.

TROUVE("<";Feuil1!A2;TROUVE(">";Feuil1!A2))
:

trouve le 1er "<" qui suit le 1er ">"

Il suffit alors de STXT en partant du 1er ">" , et de prendre le nombre de caractère qu'il y a entre les 2 d'où le "
-(TROUVE(">";Feuil1!A2)+1)
"
0
Saween
 
Cela me dis "Vous avez tapé un nombre insuffisant d'arguments pour cette fonction".
0
Fahora Messages postés 814 Date d'inscription   Statut Membre Dernière intervention   68
 
=SIERREUR(STXT(Feuil1!A2;TROUVE(">";Feuil1!A2)+1;TROUVE("<";Feuil1!A2;TROUVE(">";Feuil1!A2))-(TROUVE(">";Feuil1!A2)+1));"")

C'est de ma faute , j'ai oublié de rajouter la fin... Désolé :) , voila qui devrait fonctionner.
0
Saween
 
Sauf que toutes mes balises contiennent des "<"Cause">" Cela ne vas pas les différencier.
0