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 :
Quand je compile je me retrouve avec une Incompatibilité de type dans la ligne du If.
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 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
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.
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 :
Quelqu'un à des idées pour contourner l'erreur ?
Merci d'avance pour votre aide.
Cordialement.
Partager