Microsoft 365 Référence indirecte

micheldu52

XLDnaute Occasionnel
Bonsoir,

Je bute sur un problème, besoin de votre aide!

Avec, par exemple, les valeurs suivantes dans les cellules A1= "toto" A2 = "test" A3 contient "=" (issu d'un choix de l'utilisateur par menu déroulant) A4= "oui" A5 = "Non"

j'ai besoin d'écrire SI(A1=A2;A4;A5) (ce qui, ici, doit donner comme résultat "Non" dans cet exemple)

MAIS...., je n'arrive pas à "intégrer" le = du A3 (qui peut aussi être > >= < <= <>.....)

=si(A1&A2&A3;A4;A5) ou autre concatener sont traduits comme =si("toto=test";"oui";"non") est le "égal" est fondu dans la chaîne et n'est pas reconnu comme opérateur de comparaison....

Auriez-vous l'astuce qui m'échappe.

Merci d'avance!

"Portez vous bien"

Cordialement,

Michel
 

micheldu52

XLDnaute Occasionnel
Pourquoi pas....
Cela étant les colonnes qui contiennent les données sont « quelque part » dans les 50 colonnes Plus à droite (En fonction du choix de l’utilisateur qui définit lui même sur quelles colonnes portera la recherche avant de définir les critères de validation ) et je vais les chercher (hors VBA) par un décaler.
Mais je peux aussi les placer dans des colonnes répliquées ce qui reviendrait à mon fichier exemple en ajoutant ces mêmes colonnes pour recevoir les donnnees récupérées par les fonctions décaler.
 

Dranreb

XLDnaute Barbatruc
Cette fonction dans un module standard par exemple a marché :
VB:
Function Evalue(ByVal Arg1 As Range, ByVal Opé As String, ByVal Arg2 As Range)
   Evalue = Evaluate(Arg1.Address & Opé & Arg2.Address)
   End Function
En M2, propagé sur 15 lignes :
Code:
=Evalue($J2;"<>";$C$3)
Renvoie VRAI partout sauf en M9 où c'est FAUX
 

micheldu52

XLDnaute Occasionnel
Je me suis endormi désolé...
Cela fonctionnera-t-il si l’on mets la référence de la Celulle où l’utilisateur a choisi <> ? (Ou tout autre opérateur) plutôt que l’opérateur écrit entre « « (sinon cela revient à décrire chaque opérateur aussi me semblent il)
Merci pour ton aide !
 

micheldu52

XLDnaute Occasionnel
Bonjour,
Je n'ai pas vu ta réponse j'étais en train d'écrire en H3 la formule suivante:

=SI(NBCAR(D$3)=1;SI(ESTERREUR(TROUVE("<";D$3));1;SI(Q19<D$4;1;0))*SI(ESTERREUR(TROUVE(">";D$3));1;SI(Q19>D$4;1;0))*SI(ESTERREUR(TROUVE("=";D$3));1;SI(Q19=D$4;1;0));SI(NBCAR(D$3)=2;SI(ESTERREUR(TROUVE(">=";D$3));1;SI(Q19>=3;1;0))*SI(ESTERREUR(TROUVE("<=";D$3));1;SI(Q19<=D$4;1;0))*SI(ESTERREUR(TROUVE("<>";D$3));1;SI(Q19<>D$4;1;0));SI(D19="debute";SI(GAUCHE(Q19;NBCAR(D$3))=D$4;1;0);SI(D$3="NC PAS";SI(ESTERREUR(CHERCHE(CONCATENER("*";D$4;"*");Q19));1;0);SI(ESTERREUR(CHERCHE(CONCATENER("*";D$4;"*");Q19));0;1)))))

qui semble marcher pour tous les cas de figure (y compris les debute, contient, ne contient pas
gérée dans les colonnes H->L, elle semble convenir et ne fait pas un km....

Je reprends cela ce soir!

Bien cordialement,
Michel
 

Pièces jointes

  • exemple.xlsx
    17.8 KB · Affichages: 5

Dranreb

XLDnaute Barbatruc
Comprends pas trop l'intérêt de tester NBCAR(A$3)=1 et d'utiliser quand même derrière SI(ESTERREUR(TROUVE("<";A$3) au lieu de A$3<>"<".
Mais de toute façon au lieu de formules aussi lourdes je préfère m'écrire des fonctions perso en VBA !
 

Discussions similaires