Interpréter une string comme une formule dans VBA (pas cellule Excel)
Bonjour à tous,
Dans le cadre d'une petite explication des tests logiques que l'on peut réaliser sur VBA, je me suis retrouvé à vouloir transformer une string (entrée par l'utilisateur) en formule, mais je n'y arrive pas.
J'ai essayé à l'aide de la fonction Evaluate, celle-ci fonctionne pour les tests de type "1>2" mais pas pour tout ce qui est plus sophistiqué, du type IsNumeric ou not 1>2.
Extrait me posant problème (Le blabla je l'ai écrit à la volée et rapidement, ne pas en tenir compte) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Dim Réponse As Variant
Dim Résultat as string
Do
Réponse = InputBox("Entrez votre test logique tel que vous l'écririez dans VBA : " & vbNewLine & vbNewLine _
& "Exemples d'opérateurs : " & vbNewLine _
& "<, <=, =, >=, > : Comparaisons numériques" & vbNewLine _
& "IsNumeric(""Texte"") : Vérifie si le texte est une valeur numérique" & vbNewLine _
& "IsDate(""Texte"") : idem pour une date " & vbNewLine _
& "IsEmpty,IsMissing,IsNull,IsObject,IsError,IsArray, Is Nothing" & vbNewLine _
& """Texte1"" Like ""*Texte2*"" : Vérifie si le texte1 ressemble au texte2" & vbNewLine _
& "..." & vbNewLine & vbNewLine _
& "Ces tests peuvent être multiples à l'aide de And / Or " & vbNewLine & vbNewLine _
& "Pour tester l'inverse, commencer par Not Exemple : ""Not 5>2""", "Tests logiques", Réponse)
If Not IsError(Evaluate(Réponse)) Then Résultat = Réponse & " = " & Evaluate(Réponse) Else Résultat = "Le test logique """ & Réponse & """ ne fonctionne pas..."
Debug.Print Evaluate(Réponse)
If MsgBox(Résultat & vbNewLine & vbNewLine & "Recommencer ?", vbYesNo) = vbNo Then Exit Do
Loop |
Avez-vous une idée de comment faire ?
Honnêtement, j'ai cherché mais les résultats sont super divers en cherchant par "turn string into formula" ou autre sur google par exemple.
Merci d'avance ! ;)
Quentin.