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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 l’accè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.

Nom : Capture2.PNG
Affichages : 2769
Taille : 8,2 Ko

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 :

Nom : Capture.PNG
Affichages : 2881
Taille : 31,8 Ko


Quelqu'un à des idées pour contourner l'erreur ?

Merci d'avance pour votre aide.


Cordialement.