OVH Cloud OVH Cloud

2 conditions en une.

9 réponses
Avatar
Michel HOLDERITH
Bonjour tout le monde,

Comment peut on sur une lingne (ou en une seule conditions) mettre les
conditions suivantes :

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 then
******
end if

If MONTANTDEB > 0 And Range("F" & CELL.Row).Value < 0 then
******
end if

les ****** seraient la meme procedure.


est-ce que cette condition marcherait ?

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 OR If MONTANTDEB > 0
And Range("F" & CELL.Row).Value < 0 then

je ne pense pas....
merci d'avance.
@+
Michel.

9 réponses

Avatar
NoMail
Michel HOLDERITH a ecrit, Le 19/04/2004 09:40 :
Bonjour tout le monde,

Comment peut on sur une lingne (ou en une seule conditions) mettre les
conditions suivantes :

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 then
******
end if

If MONTANTDEB > 0 And Range("F" & CELL.Row).Value < 0 then
******
end if

les ****** seraient la meme procedure.


est-ce que cette condition marcherait ?

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 OR If MONTANTDEB > 0
And Range("F" & CELL.Row).Value < 0 then

je ne pense pas....
merci d'avance.
@+
Michel.





If (MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0) Or (MONTANTDEB >
0 And Range("F" & CELL.Row).Value < 0) then

Avatar
AV
If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 Or MONTANTDEB > 0 And
Range("F" & CELL.Row).Value < 0 Then
tes instructions
end if

AV
Avatar
Michel HOLDERITH
merci a tous les 2 c'est ce que je pensais mais je voulais une
confirmation.....
@+
Michel.

"AV" wrote in message
news:
If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 Or MONTANTDEB > 0
And

Range("F" & CELL.Row).Value < 0 Then
tes instructions
end if

AV




Avatar
papou
Bonjour Michel
Pas testé mais passe par une fonction intermédiaire qui te renvoie VRAI ou
FAUX par exemple :
If TestMichel(MONTANTDEB,Range("F" & CELL.Row).Value) Then
*****
End If

Function TestMichel(Val1, Val2) As Boolean
Dim Une As Boolean, Deux As Boolean
Select Case Val1
Case Is < 0, Is > 0
Une = True
Case Else
Une = False
End Select
Select Case Val2
Case Is < 0, Is > 0
Deux = True
Case Else
Deux = False
End Select
If Une And Deux Then
TestMichel = True
Else: TestMichel = False
End If
End Function

Cordialement
Pascal

"Michel HOLDERITH" <#nospam# a écrit dans le message de news:
#
Bonjour tout le monde,

Comment peut on sur une lingne (ou en une seule conditions) mettre les
conditions suivantes :

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 then
******
end if

If MONTANTDEB > 0 And Range("F" & CELL.Row).Value < 0 then
******
end if

les ****** seraient la meme procedure.


est-ce que cette condition marcherait ?

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 OR If MONTANTDEB > 0
And Range("F" & CELL.Row).Value < 0 then

je ne pense pas....
merci d'avance.
@+
Michel.





Avatar
AV
Si, comme il me semble comprendre, tu veux exécuter une instruction sous réserve
que l'un des 2 termes MONTANTDEB ou Range("F" & CELL.Row).Value) soit > 0 et
l'autre < 0 , l'utilisation de la fonction "SIGNE" affectée au produit des 2
variables pourrait raccourcir un peu tes tests logiques : elle renverra -1 si
l'un des termes est négatif et l'autre sup. à zéro :
Ca pourrait faire qque chose comme ça :

If Evaluate("SIGN(" & [MONTANTDEB] & "*" & Range("F" & CELL.Row).Value & ")")
= -1 Then
tes intructions
End If

AV
Avatar
Michel HOLDERITH
Tip-Top t'es le plus grand AV...... et le plus fort......
C'est ce que je voulais...
Encore un grand merci,
@+
Michel.

"AV" wrote in message
news:
Si, comme il me semble comprendre, tu veux exécuter une instruction sous
réserve

que l'un des 2 termes MONTANTDEB ou Range("F" & CELL.Row).Value) soit > 0
et

l'autre < 0 , l'utilisation de la fonction "SIGNE" affectée au produit des
2

variables pourrait raccourcir un peu tes tests logiques : elle
renverra -1 si

l'un des termes est négatif et l'autre sup. à zéro :
Ca pourrait faire qque chose comme ça :

If Evaluate("SIGN(" & [MONTANTDEB] & "*" & Range("F" & CELL.Row).Value &
")")

= -1 Then
tes intructions
End If

AV





Avatar
Michel HOLDERITH
merci de ta reponse mais AV m'a fournis un code plus court et plus adapte a
ce que je voulais,
@+
Michel.

"papou" wrote in message
news:
Bonjour Michel
Pas testé mais passe par une fonction intermédiaire qui te renvoie VRAI ou
FAUX par exemple :
If TestMichel(MONTANTDEB,Range("F" & CELL.Row).Value) Then
*****
End If

Function TestMichel(Val1, Val2) As Boolean
Dim Une As Boolean, Deux As Boolean
Select Case Val1
Case Is < 0, Is > 0
Une = True
Case Else
Une = False
End Select
Select Case Val2
Case Is < 0, Is > 0
Deux = True
Case Else
Deux = False
End Select
If Une And Deux Then
TestMichel = True
Else: TestMichel = False
End If
End Function

Cordialement
Pascal

"Michel HOLDERITH" <#nospam# a écrit dans le message de
news:

#
Bonjour tout le monde,

Comment peut on sur une lingne (ou en une seule conditions) mettre les
conditions suivantes :

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 then
******
end if

If MONTANTDEB > 0 And Range("F" & CELL.Row).Value < 0 then
******
end if

les ****** seraient la meme procedure.


est-ce que cette condition marcherait ?

If MONTANTDEB < 0 And Range("F" & CELL.Row).Value > 0 OR If MONTANTDEB >
0


And Range("F" & CELL.Row).Value < 0 then

je ne pense pas....
merci d'avance.
@+
Michel.









Avatar
Michel Pierron
Bonjour AV;
Et pourquoi pas simplement:
If MONTANTDEB * Range("F" & CELL.Row) < 0 then

MP

"AV" a écrit dans le message de
news:
Si, comme il me semble comprendre, tu veux exécuter une instruction sous réserve
que l'un des 2 termes MONTANTDEB ou Range("F" & CELL.Row).Value) soit > 0 et
l'autre < 0 , l'utilisation de la fonction "SIGNE" affectée au produit des 2
variables pourrait raccourcir un peu tes tests logiques : elle renverra -1 si
l'un des termes est négatif et l'autre sup. à zéro :
Ca pourrait faire qque chose comme ça :

If Evaluate("SIGN(" & [MONTANTDEB] & "*" & Range("F" & CELL.Row).Value & ")")
= -1 Then
tes intructions
End If

AV





Avatar
AV
Ave MP,

Et pourquoi pas simplement:
If MONTANTDEB * Range("F" & CELL.Row) < 0 then


Ben voui... pourquoi pas justement ?
Trop simple surement et sans pincée d'Evaluate !
:-)
AV