Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Référence indirecte

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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.
 
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
 
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 !
 
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

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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
5
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…