J'ai un formulaire et pour le valider, j'utilise eval(). Le problème est que j'ai défini des règles dans une table. Ces règles contiennent des espaces réservés. La règle est compilée, puis eval() doit vérifier si elle est vraie ou fausse.
Une partie d'une règle contient une vérification de la valeur d'une boîte de liste. J'ai identifié ce point comme étant le problème. J'ai pu le réduire à ce qui suit :
Application.Forms("frmDMAE").lstHistory.Column(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1)
retourne ie 2,
eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, Application.Forms(""frmDMAE"").lstHistory.ListCount - 1)")
renvoie NULL - mais je n'arrive pas à comprendre pourquoi !?
eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, 5)")
renvoie également NULL ! ? La colonne 6, ligne 5 contient bien une valeur numérique.
En collant ce qui suit dans la fenêtre de débogage, on obtient "2" comme valeur de retour dans les deux cas :
Application.Forms("frmDMAE").lstHistory(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1) Application.Forms("frmDMAE").lstHistory.Column(6, 5)
Une idée ? Je n'ai plus un centime.
[EDIT]
Solution des travaux d'André. Il suffit de changer les index de la propriété .Column dans Eval(). Utilisez .Column(rowindex, colindex) au lieu de .Column(colindex, rowindex) !
[/EDIT]
Merci beaucoup, Thomas