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

Question métaphysique

14 réponses
Avatar
JièL
Salutatousses

j'ai une question simple : comment comparer 3 valeurs en une seule
opération ?

un exemple :
A1 : 1
A2 : 1
A3 : =A1=A2
le résultat sera VRAI

Mais, si on fait
A1 : 1
A2 : 1
A3 : 1
A4 : =A1=A2=A3
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 ;-)

10 réponses

1 2
Avatar
Péhemme
Bonjour Jièl

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 ;-)
Avatar
DanielCo
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 :
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
Avatar
db
Le 21/11/2015 18:03, JièL a écrit :
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 ?



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
Avatar
JièL
Merci à tous, je vais me coucher moins bête ce soir (qui a dit "ouais,
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 :
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

Avatar
Jacquouille
Bonjour Daniel

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 :
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




---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
DanielCo
Bonjour Jacquouille parlait de formules et de VBA? Oui VRAI vaut 1 dans Excel
et -1 dans VBA. J'ai pris -1 puisque mon exemple était en VBA.
Bon dimanche.
Daniel
Jacquouille a exprimé avec précision :
Bonjour Daniel

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."
Avatar
MichD
Bonjour,

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
---------------------------------------------------------------
Avatar
Jacky
Bonjour JièL,

JièL a exposé le 21/11/2015 :
...un "truc" qui me permettrait de faire ça simplement en VBA.


'--------------
MsgBox [AND(a1¢,a2£)]
'--------------
--
Salutations
JJ
Avatar
isabelle
salut JièL,

comparer 3 valeurs en une seule opération ?



=ET(A1¢;A2£)

isabelle

Le 2015-11-21 12:03, JièL a écrit :
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

Avatar
MichD
Bonjour Isabelle, Jacky,

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
---------------------------------------------------------------
1 2