Excel ne retourne pas la valeur ''#valeur"

Fermé
ibral - 10 févr. 2010 à 09:45
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 11 févr. 2010 à 13:39
Bonjour,
Je fais une substitution dans une cellule Y538 la formule ci-dessous:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(GAUCHE(X538;CHERCHE("_";X538)-1);"[";"");"]";"");"_";"")

Je souhaite que si cette formule ne donne rien, qu'elle ne retourne pas la valeur ''#valeur" mais le contenu de la cellule X538.

Merci d'avance.
A voir également:

10 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
11 févr. 2010 à 12:21
Bonjour ibral,
Est-ce que la formule que je te proposais plus haut (post 4) résoud ton problème ?
=SI(ESTERREUR(SUBSTITUE(SUBSTITUE(SUBSTITUE(GAUCHE(X538;CHERCHE("_";X538)-1);"[";"");"]";"");"_";""));X538;SUBSTITUE(SUBSTITUE(SUBSTITUE(GAUCHE(X538;CHERCHE("_";X538)-1);"[";"");"]";"");"_";"")) SUBSTITUE(SUBSTITUE(SUBSTITUE(GAUCHE(X538;CHERCHE("_";X538)-1);"[";"");"]";"");"_";"")

1
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
10 févr. 2010 à 12:47
Bonjour,
Je pense que tu peux t'en sortir avec la fonction ESTERREUR :
=SI(ESTERREUR(SUBT...);"";SUBT...)

SUBT... désigne ta fonction. Je pense qu'il est inutile de substituer _ puisque c'est le caractère qui te sert de séparateur dans ta fonction gauche, donc il est déjà supprimé.
0
ça marche pas.

Le résultat propre doit apparaitre dans la même cellule
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
10 févr. 2010 à 18:24
Pardon, c'est plutôt :
=SI(ESTERREUR(SUBT...);X538;SUBT...)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 févr. 2010 à 19:07
Bonjour

Si c'est le m^me problème qu'hier, cad, pour expliquer à Gord21 (bonjour), que tu veux extraire le premier mot d'une chaine du style
[xxxxxx]/[yyyy]+[zzzzzz] [wwwwwwwwww]
les mots étant toujours entre des crochets
=SUBSTITUE(GAUCHE(D8;CHERCHE("]";D8)-1);"[";"")

te donne à coup sûr "xxxxxx" quelque soit le séparateur entre les mots entre crochets

le post d'hier pour Gord21
https://forums.commentcamarche.net/forum/affich-16512379-supriession-d-une-chaine-da-caractere-excel
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
10 févr. 2010 à 23:33
Bonsoir Michel_m
Merci pour les explications. C'est vrai que ce post semble être la suite de celui indiqué.
Je ne vois pas vraiment d'où vient le #valeur, il faut peut-être faire un test avant de chercher à substituer.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 févr. 2010 à 10:32
Bonjour Gord

En fait, la solution de Mike 31 (Salut, l'ancien) reprise par Ibral ne fonctionne que si le séparateur de mot entre crochets est l'underscore. Qu'il y ait qu'un seul mot ou un autre séparateur (au départ il écrivait un "/" comme séparation) une erreur est générée
explication pour Ibral:
la formule que je propose recherche ce qui est à gauche du premier ] donc, le caractère séparateur est indifférent
la fonction SUBSITUE enlève alors le premier [
c'est pour cela que j'ai souligné entre crochets
0
merci a vous deux.
La valeur "#valeur" est générée quand il n'y a pas l'argument crochet trouvé, et c'est là ou ça bloque.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 févr. 2010 à 11:41
OUI, mais ca ne correspond pas du tout à ce que tu demandais dans ton premier message!

Désolé, je n'ai pas de boule de cristal et tu m'as fait perdre mon temps.
0
Désolé michel si je t'ai fait perdre ton temps, mais il me semble que mon message était assez explicite:

"si cette formule ne donne rien, qu'elle ne retourne pas la valeur ''#valeur" mais le contenu de la cellule X538"
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 févr. 2010 à 12:19
T"as Raison, Brenda

Je relis ta demande
..."Dans une collonne excel, je souhaite suprimer les crochets [ et ] et récupérer la chaine du premier entre crochet, pour compliquer le problème le nombre de caractère entre les crochets est variable exemple:
[toto]
[bonbon]
[bi*da-]
[tata]/[titi]"...

....
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
11 févr. 2010 à 13:39
Salut tout le monde,

N’ayant pas de relance sur l'autre discussion, j'avais un peu décroché.

Je voudrais faire un rappel à Ibral, il est inutile et même fortement déconseillé d’ouvrir plusieurs discussions sur le même sujet.
Ensuite s’il veut avoir des propositions, il faudrait qu’il donne tous les éléments de son problème, au départ il s’agissait d’isoler la partie gauche d’une valeur définie par / et supprimer les entres crochet []

Il serait souhaitable de sa part qu’il donne des exemples de plusieurs valeurs exemple dans une cellule j’ai ça et voudrai ce résultat, dans cette cellule j’ai ça et voudrai ça etc …

Tout de même sans avoir encore tout compris de ce problème à rallonge cette formule qui peut être complété pour éviter le message d’erreur dans le cas de cellule source vide ou encore supprimer une autre occurrence

=SI(ESTERREUR(I1);SUBSTITUE(SUBSTITUE(A1;"[";"");"]";"");SUBSTITUE(SUBSTITUE(GAUCHE(A1;CHERCHE("/";A1)-1);"[";"");"]";""))
0