Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Activation d'une formule par la fonction INDIRECT

2 réponses
Avatar
d.sundow
Bonjour,

Le probl=E8me auquel je fais face est le suivant :

Saisir en :

A1 : 4

B1 : =3DREMPLACER(TEXTE(A1;"#0.00");NBCAR(TEXTE(A1;"#0.00"))-2;1;",")
(valeur pr=E9sente en B1 : 4,00)

Il s'agit l=E0 d'une formule qui formate la cellule d'une mani=E8re assez
particuli=E8re.

Je dois arriver =E0 exprimer cette formule via une cha=EEne, afin d'isoler
le 1 de A1 car je souhaite ult=E9rieurement avoir une action
particuli=E8re et compl=E9mentaire =E0 ces deux endroits de la formule :

B2 :
=3D"REMPLACER(TEXTE(A"&1&";"&"""#0.00"""&");NBCAR(TEXTE(A"&1&";"&"""#0.00"""=
&"))"&-2&";"&1&";"&""","""&")"

En B2 on visualise la formule sous forme de cha=EEne alphanum=E9rique; la
formule n'est bien sure pas activ=E9e.

Si je fait un copi=E9-coll=E9-valeur (attention valider avec esc/enter
pour r=E9cup=E9rer la cha=EEne de caract=E8res et non la formule initiale) d=
e
la cellule B2 en B3; la cellule B3 prend la forme de la formule
pr=E9sente en B1(sans le =3D devant donc on la visualise en toutes
lettres).

Si toujours en B3 je rajoute un =3D devant cette formule elle s'active
et est en tout point semblable =E0 la formule plac=E9e en B1. Ceci nous
d=E9montre que la cha=EEne tap=E9e est correcte (en tout cas qu'elle
contient tous les =E9l=E9ments).

Maintenant si j'essaye d'activer la formule avec la fonction
INDIRECT :

=3DINDIRECT("REMPLACER(TEXTE(A"&1&";"&"""#0.00"""&");NBCAR(TEXTE(A"&1&";"&""=
"#0.00"""&"))"&-2&";"&1&";"&""","""&")")
le r=E9sultat n'est pas 4,00 mais #REF!.

Quelqu'un pourrait-il m'aider. De toute =E9vidence il faut positionner
la fonction INDIRECT d'une mani=E8re que mes multiples et infructueux
essais ne m'ont pas d=E9voil=E9s.

D'avance un grand merci - sundow

2 réponses

Avatar
isabelle
bonjour sundow,

l'argument de la fonction INDIRECT doit etre une adresse,
je ne comprend pas ce que tu veut faire exactement
veut tu passer l'adresse A1 en variable ou peut etre seulement le no. de
ligne en variable ?

isabelle

Bonjour,

Le problème auquel je fais face est le suivant :

Saisir en :

A1 : 4

B1 : =REMPLACER(TEXTE(A1;"#0.00");NBCAR(TEXTE(A1;"#0.00"))-2;1;",")
(valeur présente en B1 : 4,00)

Il s'agit là d'une formule qui formate la cellule d'une manière assez
particulière.

Je dois arriver à exprimer cette formule via une chaîne, afin d'isoler
le 1 de A1 car je souhaite ultérieurement avoir une action
particulière et complémentaire à ces deux endroits de la formule :

B2 :
="REMPLACER(TEXTE(A"&1&";"&"""#0.00"""&");NBCAR(TEXTE(A"&1&";"&"""#0.00"""&"))"&-2&";"&1&";"&""","""&")"

En B2 on visualise la formule sous forme de chaîne alphanumérique; la
formule n'est bien sure pas activée.

Si je fait un copié-collé-valeur (attention valider avec esc/enter
pour récupérer la chaîne de caractères et non la formule initiale) de
la cellule B2 en B3; la cellule B3 prend la forme de la formule
présente en B1(sans le = devant donc on la visualise en toutes
lettres).

Si toujours en B3 je rajoute un = devant cette formule elle s'active
et est en tout point semblable à la formule placée en B1. Ceci nous
démontre que la chaîne tapée est correcte (en tout cas qu'elle
contient tous les éléments).

Maintenant si j'essaye d'activer la formule avec la fonction
INDIRECT :

=INDIRECT("REMPLACER(TEXTE(A"&1&";"&"""#0.00"""&");NBCAR(TEXTE(A"&1&";"&"""#0.00"""&"))"&-2&";"&1&";"&""","""&")")
le résultat n'est pas 4,00 mais #REF!.

Quelqu'un pourrait-il m'aider. De toute évidence il faut positionner
la fonction INDIRECT d'une manière que mes multiples et infructueux
essais ne m'ont pas dévoilés.

D'avance un grand merci - sundow


Avatar
d.sundow
l'argument de la fonction INDIRECT doit etre une adresse,
je ne comprend pas ce que tu veut faire exactement
veut tu passer l'adresse A1 en variable ou peut etre seulement le no. de
ligne en variable ?

isabelle


Bonjour Isabelle,

Excuse-moi pour ma réponse tardive, il m'était impossible de te
répondre plus tôt.

L'information donnée dans ta première ligne est en fait la réponse à
ma question. Je m'étais complètement fourvoyer.

Il s'agissait en définitive de pouvoir isolé le no de ligne afin de
pouvoir le remplacer par une formule générant une suite par pas de
deux, ce qui avait pu faire l'objet d'une de mes questions
précédentes.

Pour ceux que éventuellement ça intéresse :

Si tu tires en A une série de nombres (2,4,6,.. p.ex.)

et qu'en B2 tu introduis la formule suivante (et qui contient cette
fois le INDIRECT correctement positionné) :

=REMPLACER(TEXTE(INDIRECT("A"&(ENT((LIGNE()-1)/
3)+1)*4-3);"#0.00");NBCAR(TEXTE(INDIRECT("A"&(ENT((LIGNE()-1)/
3)+1)*4-3);"#0.00"))-2;1;",")

En tirant cette formule il est possible de générer une suite doublée à
un format particulier.

Cette question est donc résolue, merci beaucoup Isabelle.

Très bonne journée à tous - sundow