Question métaphysique
Le
JièL

Salutatousses
j'ai une question simple : comment comparer 3 valeurs en une seule
opération ?
un exemple :
A1 : 1
A2 : 1
A3 : ¡¢
le résultat sera VRAI
Mais, si on fait
A1 : 1
A2 : 1
A3 : 1
A4 : ¡¢£
le résultat sera FAUX
Pourquoi ?
Même chose avec le VBA
If [A1]=[A2] Then ça fonctionne
If [A1]=[A2]=[A3] Then ça ne fonctionne plus
Pourquoi bis ?
Je suis intéressé par la raison et aussi par un "truc" qui me
permettrait de faire ça simplement en VBA.
Bien sur j'ai contourné le pb, mais j'aurais aimé comprendre.
Merci d'avance
--
JièL poseur de question métaphysique ;-)
j'ai une question simple : comment comparer 3 valeurs en une seule
opération ?
un exemple :
A1 : 1
A2 : 1
A3 : ¡¢
le résultat sera VRAI
Mais, si on fait
A1 : 1
A2 : 1
A3 : 1
A4 : ¡¢£
le résultat sera FAUX
Pourquoi ?
Même chose avec le VBA
If [A1]=[A2] Then ça fonctionne
If [A1]=[A2]=[A3] Then ça ne fonctionne plus
Pourquoi bis ?
Je suis intéressé par la raison et aussi par un "truc" qui me
permettrait de faire ça simplement en VBA.
Bien sur j'ai contourné le pb, mais j'aurais aimé comprendre.
Merci d'avance
--
JièL poseur de question métaphysique ;-)
Un truc comme cela ?
Sub Jièl()
Dim i As Long
Dim j As Long
Dim k As Long
i = Range("a1")
j = Range("a2")
k = Range("a3")
If i = j And j <> k Then
MsgBox "Vrai"
Else
MsgBox "Faux"
End If
End Sub
Bonne soirée
Michel
"JièL" a écrit dans le message de groupe de discussion :
n2q84u$339$
Salutatousses
j'ai une question simple : comment comparer 3 valeurs en une seule
opération ?
un exemple :
A1 : 1
A2 : 1
A3 : ¡¢
le résultat sera VRAI
Mais, si on fait
A1 : 1
A2 : 1
A3 : 1
A4 : ¡¢£
le résultat sera FAUX
Pourquoi ?
Même chose avec le VBA
If [A1]=[A2] Then ça fonctionne
If [A1]=[A2]=[A3] Then ça ne fonctionne plus
Pourquoi bis ?
Je suis intéressé par la raison et aussi par un "truc" qui me
permettrait de faire ça simplement en VBA.
Bien sur j'ai contourné le pb, mais j'aurais aimé comprendre.
Merci d'avance
--
JièL poseur de question métaphysique ;-)
Parce que "[A1]=[A2]" égale VRAI et que VRAI vaut -1.
Var = ([A1] = [A2]) * -1 = [A3]
fonctionne seulement si A3=1. Sinon :
If [A1] = [A2] And [A2] = [A3] Then
MsgBox "vrai"
Else
MsgBox "faux"
End If
Cordialement.
Daniel
JièL a couché sur son écran :
Sans doute parce que l'expression est évaluée comme ceci :
A1=(A2£)
Comme A2£ est VRAI et que A1=1, excel évalue : 1=VRAI et renvoie FAUX...
db
mais y'a encore du boulot" ? :-D)
et effectivement, vos explications sont parfaitement logiques, moi je ne
l'étais pas (c'est fou ce qu'un rhume détraque)
(non, c'est pas un rhume de cerveau, je suis pas équipé pour ;-D)
--
JièL 1 tel e jean
Le 21/11/2015 18:03, JièL a écrit :
Le demandeur parlait de formule.
Tu parles VCBA, puisque tu donnes -1 à VRAI
mais, en formule, VRAI ne vaut-il pas +1 ?
perso, je ressens l'explication comme ceci:
Excel commence à lire A1¢ ---> vrai ------> =1
Peux-tu me donner ton point de vue, svp?
Merci et bonne journée
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"DanielCo" a écrit dans le message de groupe de discussion :
n2qa6b$85h$
Bonsoir,
Parce que "[A1]=[A2]" égale VRAI et que VRAI vaut -1.
Var = ([A1] = [A2]) * -1 = [A3]
fonctionne seulement si A3=1. Sinon :
If [A1] = [A2] And [A2] = [A3] Then
MsgBox "vrai"
Else
MsgBox "faux"
End If
Cordialement.
Daniel
JièL a couché sur son écran :
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
et -1 dans VBA. J'ai pris -1 puisque mon exemple était en VBA.
Bon dimanche.
Daniel
Jacquouille a exprimé avec précision :
Le contenu des cellules :
A1 : 1
A2 : 1
A3 : ¡¢ --->>> Affiche VRAI
A4 : ¡¢£
Peu importe le contenu des cellules A1, A2, la réponse retournée en A4 est
VRAI
Excel résout la formule en A4 comme ceci :
Dans un premier temps :
¡¢ si les 2 cellules contiennent la même valeur A3 retourne VRAI
Dans un deuxième temps, la valeur de la première opération (¡¢) (VRAI)
est comparée avec la valeur en A3 (VRAI) . Par conséquent, la valeur
retournée
en A4 est VRAI.
Si les valeurs en A1 et A2 sont différents et que par conséquent A3 Affiche
FAUX,
A4 retourne aussi VRAI. Il s'agit de refaire le même raisonnement qu'au
paragraphe
précédent.
Maintenant, si on ajoute des parenthèses à la formule en A4 comme ceci :
=(A1¢)£,
le résultat est tout autre, car Excel résout la formule à l'intérieur de la
parenthèse avant
de faire la comparaison en avec A3.
MichD
---------------------------------------------------------------
JièL a exposé le 21/11/2015 :
'--------------
MsgBox [AND(a1¢,a2£)]
'--------------
--
Salutations
JJ
=ET(A1¢;A2£)
isabelle
Le 2015-11-21 12:03, JièL a écrit :
Supposons le contenu des cellules comme ceci :
Le contenu des cellules :
A1 : 1
A2 : 1
A3 : ¡¢
Cette formule retourne =ET(A1¢;A2£) retourne FAUX
Cela vaut aussi pour cette ligne de commande :
MsgBox [AND(a1¢,a2£)]
Dans les 2 cas, pour obtenir VRAI, on doit modifier les formules
comme ceci : =ET(A1¢;A2£*1)
Et MsgBox [AND(a1¢,a2£*1)]
Était-ce le propos de votre intervention?
MichD
---------------------------------------------------------------