2 pièce(s) jointe(s)
[VBA] Condition de IF définie dans un String
Bonjour,
Pour l'un de mes codes j'ai besoin de passer un string en tant que condition pour un IF.
Par exemple, je tente de faire fonctionner une macro de ce type :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Sub test()
Dim StrTest As String
Dim shExport As Worksheet 'variable permettant laccès à la feuille Export.
Set shExport = ThisWorkbook.Worksheets("Export")
StrTest = "shExport.Cells(2, 2).Value = ""hello"" Or shExport.Cells(2, 2).Value = ""bonjour"""
'MsgBox StrTest
If StrTest Then
MsgBox "OK"
Else
MsgBox "KO"
End If
End Sub |
Quand je compile je me retrouve avec une Incompatibilité de type dans la ligne du If.
Note : En réalité pour mon code j'ai même shExport.Cells(i, j) à la place de shExport.Cells(2, 2) avec i et j variables.
Note 2 : Pour ceux qui peuvent se demander à quoi ca sert, c'est pour permettre à un utilisateur de créer ses propres conditions if (avec uniquement des Or au milieu) sans avoir à taper du code.
En gros, j'ai un tableau comme celui ci dessous qui est rempli par l'utilisateur avec les conditions qu'il veut mettre sur la colonne rentrée.
Pièce jointe 280412
Par exemple, avec ces infos rentrées si la colonne "Identifiant" (située dans une autre feuille) contient des cellules égales à hello ou égales à bonjour ou différentes de test ou ... alors le script me renvoie "OK" sinon il me renvoie "KO".
Donc je construis une chaine de caractère qui contient toutes mes conditions à partir de ce tableau (chose que j'arrive à faire assez simplement) et après j'aimerais faire le test sur la colonne "Identifiant" à partir de mon String.
Ma variable string "StrTest" contient la condition je la construis à partir du tableau excel (en faisant entre autre des split dans les cases).
Ma variable StrTest ressemble à ca :
Pièce jointe 280417
Quelqu'un à des idées pour contourner l'erreur ?
Merci d'avance pour votre aide.
Cordialement.