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

Evaluer une expression en VBA

5 réponses
Avatar
Julian Alvarez
Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.

5 réponses

Avatar
Pierre Fauconnier
Bonjour

Si j'ai bien compris, tu cherches à récupérer une valeur booléenne si
range("A1").value = D.

Si c'est cela, fais plus court
dim Rep as boolean
rep = (range("a1")= "D")


Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Julian Alvarez" a écrit dans le
message de news:
Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.


Avatar
isabelle
bonjour Julian,

si la variable est du texte,

Rep = Evaluate(" & s & ")

si la variable est une adresse,

Rep = Evaluate(" & s.address & ")

isabelle


Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.


Avatar
Julian Alvarez
J'ai essayé les deux possibilités et j'ai toujours une erreur. Je n'avais pas
bien exprimé mon besoin. En fait je le =D provient d'une variable.
exemple:

dim S as string
Dim Crit as string
Dim Comp as string

s="D"
Crit="=D"
Comp=s & Crit 'donc j'ai D=D en string
et après quand je fais
Evaluate(Comp) j'ai une erreur.

J'ai essayé ce que m'a dit Isabelle :

Evaluate(" & comp & ")
j'obtiens un message d'erreur.

Trop dur juste avant le we.

Merci d'avance pour les réponses.





Sur la réponse de Pierre le problème vient que le critère de comparaison est
une variable dans le string. C'est à dire que je dois ecrire non pas :
rep = (range("a1").value= "D")
mais
rep

bonjour Julian,

si la variable est du texte,

Rep = Evaluate(" & s & ")

si la variable est une adresse,

Rep = Evaluate(" & s.address & ")

isabelle


Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.





Avatar
isabelle
je ne comprend pas trop ta démarche,
est ce que c'est pour vérifier si les variables sont égales ?

isabelle


J'ai essayé les deux possibilités et j'ai toujours une erreur. Je n'avais pas
bien exprimé mon besoin. En fait je le =D provient d'une variable.
exemple:

dim S as string
Dim Crit as string
Dim Comp as string

s="D"
Crit="=D"
Comp=s & Crit 'donc j'ai D=D en string
et après quand je fais
Evaluate(Comp) j'ai une erreur.

J'ai essayé ce que m'a dit Isabelle :

Evaluate(" & comp & ")
j'obtiens un message d'erreur.

Trop dur juste avant le we.

Merci d'avance pour les réponses.





Sur la réponse de Pierre le problème vient que le critère de comparaison est
une variable dans le string. C'est à dire que je dois ecrire non pas :
rep = (range("a1").value= "D")
mais
rep >


bonjour Julian,

si la variable est du texte,

Rep = Evaluate(" & s & ")

si la variable est une adresse,

Rep = Evaluate(" & s.address & ")

isabelle



Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.







Avatar
Julian Alvarez
Non, justement le problème est que la variable Crit (exemple Crit = "=D")
peut être du type Crit=("<5"). Sinon j'aurais comparé directement les deux
variables.

Merci pour vos réponses.


je ne comprend pas trop ta démarche,
est ce que c'est pour vérifier si les variables sont égales ?

isabelle


J'ai essayé les deux possibilités et j'ai toujours une erreur. Je n'avais pas
bien exprimé mon besoin. En fait je le =D provient d'une variable.
exemple:

dim S as string
Dim Crit as string
Dim Comp as string

s="D"
Crit="=D"
Comp=s & Crit 'donc j'ai D=D en string
et après quand je fais
Evaluate(Comp) j'ai une erreur.

J'ai essayé ce que m'a dit Isabelle :

Evaluate(" & comp & ")
j'obtiens un message d'erreur.

Trop dur juste avant le we.

Merci d'avance pour les réponses.





Sur la réponse de Pierre le problème vient que le critère de comparaison est
une variable dans le string. C'est à dire que je dois ecrire non pas :
rep = (range("a1").value= "D")
mais
rep > >


bonjour Julian,

si la variable est du texte,

Rep = Evaluate(" & s & ")

si la variable est une adresse,

Rep = Evaluate(" & s.address & ")

isabelle



Bonjour,

j'ai un problème d'evaluation en VBA.

Je concatene dans une variable le resultat d'une expression.
exemple :

dim S as string
S=range("A1").value & "=D"

et après je fais

Rep=evaluate(s) et je pensais qu'ainsi je récupérerais le booleen de
l'expression.
Ca ne marche pas j'ai une erreur à chaque fois, il ne sait pas l'évaluer.

Merci d'avance de votre aide.

Cordialement.