VBA - Variable opérateur

amine00z

XLDnaute Nouveau
Bonjour LE forum :D

J'aurais besoin de votre aide SVP

Ma question est : " est-il possible d’assigner un opérateur ou un opérateur booléen à une variable dans une macro Excel ? "
Autrement dit : Peut-on créer, par exemple, une procédure du genre :

Code:
Sub exemple(variable1, variable2, variable3, operateur1, operateur2, booleen1)
'code
End Sub


Où les variables sont des nombres, les opérateurs sont des expressions comme >, <, =, etc. et le booleen c’est And, Or, etc.

Je vous remercie d'avance pour votre aide
 

Jacky67

XLDnaute Barbatruc
Re : VBA - Variable opérateur

personne n'a une idée ? :(

Ce genre de chose ??
Code:
Option Explicit

Sub exemple(V1, V2, V3, OP1, OP2, booleen1)
    With Feuil1
        .[a1] = V1 & OP1 & V2 & OP2 & Application.Evaluate(V1 & OP1 & V2)
        .[a2] = Application.Evaluate(V1 & OP1 & V2) _
        & OP1 & V3 & OP2 & Application.Evaluate(V1 & OP1 & V2 & OP1 & V3)
    End With
End Sub
'------------------------------------------------------------
Sub test()
    Dim x1 As Double, x2 As Double, x3 As Double, oper1 As String, oper2 As String, z As Boolean
    x1 = 5
    x2 = 10
    x3 = 20
    oper1 = "+"
    oper2 = "="
    z = 0
    Call exemple(x1, x2, x3, oper1, oper2, z)
End Sub

Salutations.
JJ
 
Dernière modification par un modérateur:

amine00z

XLDnaute Nouveau
Re : VBA - Variable opérateur

Merci pour vos réponses

Oui Jacky67, dans cet esprit là. C'est génial déjà je sais que les opérateurs +, - etc. peuvent marcher avec Application.Evaluate !! Merci infiniment :eek:

Maintenant, est-il possible que la variable z soit quelque chose comme "<" ou "<>" par exemple, afin de pouvoir comparer deux résultats et renvoyer "true" ou "false".

Edit : Ah oui, Application.Evaluate marche aussi pour comparer et tout, parfait c'est exactement ce qu'il me fallait, merci beaucoup Jacky t'es un boss
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Re : VBA - Variable opérateur

Merci pour vos réponses
Maintenant, est-il possible que la variable z soit quelque chose comme "<" ou "<>" par exemple, afin de pouvoir comparer deux résultats et renvoyer "true" ou "false".
RE...
Ou on modifie celle en place:
oper1 = "+"
Par
oper1 = ">"
Ou on en rajoute
Code:
Option Explicit

Sub exemple(V1, V2, V3, OP1, OP2, b1, b2)
    With Feuil1
        .[a1] = V1 & OP1 & V2 & OP2 & Application.Evaluate(V1 & OP1 & V2)
        .[a2] = Application.Evaluate(V1 & OP1 & V2) _
        & OP1 & V3 & OP2 & Application.Evaluate(V1 & OP1 & V2 & OP1 & V3)
        .[a3] = V1 & b1 & V2 & OP2 & Application.Evaluate(V1 & b1 & V2)
        .[a4] = V1 & b2 & V2 & OP2 & Application.Evaluate(V1 & b2 & V2)
    End With
End Sub
'--------------------------------------------------------
Sub test()
    Dim x1 As Double, x2 As Double, x3 As Double, oper1 As String, oper2 As String, z1 As String, z2 As String
    x1 = 5
    x2 = 10
    x3 = 20
    oper1 = "+"
    oper2 = "="
    z1 = "<"
    z2 = ">"
    Call exemple(x1, x2, x3, oper1, oper2, z1, z2)
End Sub
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote