supprimer ESTERREUR() et ESTNUM() dans une formule conditionnelle

A

albert

Guest
Bonjour à tous et à toutes,
J’ai essayé de transformer la formule suivante en supprimant ESTERREUR() et ESTNUM() de manière à ne conserver que les conditions. Je n’y parviens pas.
J’ai trouvé =SI(P4<R4;"Vente";"");SI(O4<R4;"Vente";"") (en T4)
Mais il me semble qu’il manque une condition pour OU(O4<R4;P4<R4));"Vente";"")))))

=SI(ET(ESTERREUR(R4);OU(ESTNUM(O4);ESTNUM(P4)));"Vente";SI(ET(ESTERREUR(O4);ESTERREUR(P4));"";SI(ET(ESTERREUR(O4);ESTNUM(P4));SI(P4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTERREUR(P4));SI(O4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTNUM(P4);OU(O4<R4;P4<R4));"Vente";"")))))


cette transformation est destinée à être traduite en vba. Je remplace ESTERREUR() par On Error Resume Next

Puis-je avoir une aide sur la formule qui est en colonne S ?

merci d’avance

albert
 

Pièces jointes

  • Test.zip
    2.2 KB · Affichages: 15
  • Test.zip
    2.2 KB · Affichages: 12
  • Test.zip
    2.2 KB · Affichages: 12
A

albert

Guest
bonjour Jean-Marie,
...ça ne marche pas
ce qui me fait écrire

=SI(P4<R4;"Vente";"");SI(O4<R4;"Vente";"");SI(OU(O4<R4;P4<R4);"Vente";"")

...j'obtiens alors #VALEUR!

comme dans tous mes essais précédents

si tu as une autre idée, elle sera bienvenue
 
A

albert

Guest
re bonjour, Jean-Marie,
j'ai repris les 3 contitions indépendamment les unes des autres, elles fonctionnent

1/ =SI(P4<R4;"Vente";"")
2/=SI(O4<R4;"Vente";"")
3/=SI(OU(O4<R4;P4<R4);"Vente";"")

maintenant je devrais pouvoir me débrouiller avec çà

...tu as dù comprendre que je ne suis pas très habile en formules excel
 
A

albert

Guest
en fait, pour écrire en clair ce que je cherche, il faudrait que je sois clair avec moi-même.
je ne maîtrise pas bien les formules imbriquées et je cherche à traduire la formule que j'ai mise en exemple (et que je ne comprends pas complètement):

=SI(ET(ESTERREUR(R4);OU(ESTNUM(O4);ESTNUM(P4)));"Vente";SI(ET(ESTERREUR(O4);ESTERREUR(P4));"";SI(ET(ESTERREUR(O4);ESTNUM(P4));SI(P4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTERREUR(P4));SI(O4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTNUM(P4);OU(O4<R4;P4<R4));"Vente";"")))))

ESTERREUR permet d'éviter l'affichage du message d'erreur
et ESTNUM permet de faire référence à une cellule qui contient une formule.
en vba on n'a pas besoin de ces deux précautions
Aussi, j'aimerais trouver le moyen de réécrire la totalité de cette formule en retirant ESTERREUR et ESTNUM de manière à ensuite traduire en vba

dans ma réponse qui précède, je pensais avoir trouvé la solution en additionnant les 3 formules , soit :
=SI(P4<R4;"Vente";"");SI(O4<R4;"Vente";""); SI(OU(O4<R4;P4<R4);"Vente";"")

...mais, si les résultats sont satisfaisants lorsque j'écris chaque formule indépendamment l'une de l'autre, j'obtiens #VALEUR! lorsque je les cumule ... =SI(P4<R4;"Vente";"");SI(O4<R4;"Vente";""); SI(OU(O4<R4;P4<R4);"Vente";"")

Je ne peux donc comparer les résultats avec ceux de la formule d'origine, soit

=SI(ET(ESTERREUR(R4);OU(ESTNUM(O4);ESTNUM(P4)));"Vente";SI(ET(ESTERREUR(O4);ESTERREUR(P4));"";SI(ET(ESTERREUR(O4);ESTNUM(P4));SI(P4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTERREUR(P4));SI(O4<R4;"Vente";"");SI(ET(ESTNUM(O4);ESTNUM(P4);OU(O4<R4;P4<R4));"Vente";"")))))

en fait, pour faire simple, ma question serait : comment démonter la formule pour comprendre ce qu'elle calcule...

(merci de ta patience)
 
A

albert

Guest
Après réflexion, je pense que les 3 formules des colonnes U,V,W ? viennent conforter ler résultats de la colonne S

J’ai donc tous les éléments pour traduire en VBA

milles excuses pour tous ces tâtonnements (j'ai pas trop l'esprit scientifique)
 

Pièces jointes

  • Test2.zip
    2.9 KB · Affichages: 13
  • Test2.zip
    2.9 KB · Affichages: 11
  • Test2.zip
    2.9 KB · Affichages: 14
A

albert

Guest
c'est quand même plus sumple en vba....

Sub ColS()
a = Cells(1, 8)
For R = 4 To a
'---------1ère condition---------=SI(P4<R4;"Vente";"")
If Cells(R, 16) < Cells(R, 18) Then
Cells(R, 19) = "vente"
'-------------------deuxième condition----------=SI(O4<R4;"Vente";"")

ElseIf Cells(R, 15) < Cells(R, 18) Then
Cells(R, 19) = "vente"
'--------------troisième condition------------=SI(OU(O4<R4;P4<R4);"Vente";"")
ElseIf Cells(R, 15) < Cells(R, 18) Or Cells(R, 16) < Cells(R, 18) Then 'AF=32
Cells(R, 19) = "vente"
End If
Next

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
313 131
Messages
2 095 558
Membres
106 294
dernier inscrit
Stéphkdsd