les opérateurs

M

marc

Guest
Bonjour,

Je souhaiterais mettre en variable les opérateurs (si c'est possible)

Sheets("Feuil1").Activate

a = "And": b = "=": c = "<": d = "S45"
If Cells(1,1) = d & a & Cells(i, col(2)) < 100 Then j = 2

L'opérateur And représenté par la variable a est bien pris en compte et j prend bien la valeur 2 quand cell(1,1)=d

Si je complète en remplaçant le signe = par la variable b et l'opérateur < par la variable c , l'instruction ne fonctionne pas

L'objectif étant de mettre les opérateurs en variables (récupérés dans des cellules)

Est-ce possible ?

Merci d'avance

Marc
 
M

marc

Guest
bonsoir Jean Marie,

.
Je cherchais à récupérer les signes "=" et"<" (logés dans une feuille par exemple) les mettre dans les variables b et c pour qu'ils jouent leur rôle dans la formule

If Cells(1,1) & b & d & a & Cells(i, col(2)) & c & 100 Then j = 2 pour devenir :

if cells(1,1) = d And cells(i,col(2)) < 100 then j= 2

Le fil proposé est peut être la bonne réponse, mais ça me dépasse

Merci
 
O

OnErrorResumeNext

Guest
bonsoir Marc,

il faut que tu construises une formule sous forme de "string" et que tu la calcules avec la fonction Evaluate.
Essaye ce code :

------------------------------------------------------------------------------------
Dim Formule As String

var10 = 10 ' tu peux mettre
var100 = 100 ' var10 = Range("B1")
var1000 = 1000 '
var99 = 99 '

a = Worksheets("feuil1").Range("A1") ' "and"
b = Worksheets("feuil1").Range("A2") ' "="
c = Worksheets("feuil1").Range("A3") ' "<"
d = Worksheets("feuil1").Range("A2") ' ">"

' calculs avec "<"
Formule = var10 & c & var100
MsgBox Formule & " , c'est " & Evaluate(Formule)
Formule = var1000 & c & var100
MsgBox Formule & " , c'est " & Evaluate(Formule)

' calculs avec "="
Formule = var100 & b & var100
MsgBox Formule & " , c'est " & Evaluate(Formule)
Formule = var99 & b & var100
MsgBox Formule & " , c'est " & Evaluate(Formule)

' calculs avec "et"
Formule = a & "(" & var10 & c & var100 & "," & var1000 & b & var1000 & ")"
MsgBox Formule & " , c'est " & Evaluate(Formule)
Formule = a & "(" & var1000 & d & var99 & "," & var99 & b & var100 & ")"
MsgBox Formule & " , c'est " & Evaluate(Formule)

End Sub
--------------------------------------------------------------------------------------

amicalement
 
M

marc

Guest
Bonjour On errorResumeNext,

Merci pour ta réponse qui me convient tout à fait. Il me reste un problème.
Dans le programme (qui est loin d'être optimisé : ce n'est pas mon souci pour le moment), au deuxième passage (i=2) , il donne la valeur Vrai alors que Formule a la valeur : AND(S46=S45, -249.01<100)

Si tu pouvais m'aider à nouveau, ce serait super

Merci
 

Pièces jointes

  • test.zip
    13.9 KB · Affichages: 14
  • test.zip
    13.9 KB · Affichages: 13
  • test.zip
    13.9 KB · Affichages: 16
O

OnErrorResumeNext

Guest
bonjour Marc,

je viens de jeter un coup d'oeil à ton fichier, il me faudrait un bon moment pour trouver d'où vient l'erreur.
A ta place, j'essaierais d'éditer la formule, soit par un MsgBox Formule ou un Cells(r,c) = Formule pour être certain que la formule est bien comme tu l'attendais.
Si d'ici ce soir tu n'as pas résolu le problème, je le regarderai à nouveau.

Tiens-moi au courant et bon courage,

amicalement
 
M

marc

Guest
bonsoir,

Merci de t'être penché sur mon problème.

Je n'ai pas trouvé la solution.
Je voulais faire une requête "Presse bouton" avec deux critères de recherche sur plusieurs feuilles (dépassement des 65536 lignes)

A+
 
O

OnErrorResumeNext

Guest
Marc,

je n'ai pas pu étudier de plus près ton fichier. Es-tu certain que le problème vient des formules ? La construction de ton code le rend difficile à décrypter.
Si tu pouvais essayer de cerner le problème en le testant par petits morceaux, ça pourrait nous faciliter la tache.

amicalement
 

Discussions similaires

Réponses
12
Affichages
725

Statistiques des forums

Discussions
314 203
Messages
2 107 176
Membres
109 766
dernier inscrit
pleutre