VBA evaluate if retourne erreur 2015 [Résolu]

Guy_M

XLDnaute Occasionnel
Bonjour,

J'ai écrit la ligne VBA suivante
Code:
FeuilleCollecte.Cells(NumLigCour, j) = FeuilleCourante.Evaluate(FeuilleReferences.Cells(j + 1, 2).Value)

évidemment, ça ne marche pas :(

J'ai fait une exécution pas à pas avec un espion sur les expression
Code:
FeuilleReferences.Cells(j + 1, 2).Value : "if(E47="Oui";E48;"")"
FeuilleCourante.Evaluate(FeuilleReferences.Cells(j + 1, 2).Value) : Erreur 2015

Pensant que c'était un problème de syntaxe de la formule Excel, j'ai testé les expressions suivantes avec l'espion
Code:
FeuilleCourante.Evaluate("e47") : "non"
FeuilleCourante.Evaluate("upper(e47)") : "NON"

puis
Code:
FeuilleCourante.Evaluate("IF(E47;0;1)") : Erreur 2015
FeuilleCourante.Evaluate("IF(true;0;1)") : Erreur 2015
FeuilleCollecte.Evaluate("IF(true;0;1)") : Erreur 2015
Evaluate("IF(true;0;1)") : Erreur 2015
:confused:

Les 3 dernières lignes m'ont convaincues que j'ai raté quelque chose ou qu'il existe une incompatibilité entre IF et EVALUATE.

Quelqu'un aurait-il une idée ?

Je vous prie de noter que je ne peux pas contourner avec du code vba de type
Code:
if FeuilleCollecte.range("e47")

Par avance, je vous remercie de vos réponses
Guy
 
Dernière édition:
G

Guest

Guest
Re : VBA evaluate if retourne erreur 2015

Bonjour,

Cela irait sans doute mieux avec des virgules à la place des points-virgules.
Code:
Debug.Print ActiveSheet.Evaluate("IF(E47,0,1)")
Debug.Print ActiveSheet.Evaluate("IF(true,0,1)")
Debug.Print ActiveSheet.Evaluate("IF(true,0,1)")
Debug.Print Evaluate("IF(true,0,1)")

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 167
Messages
2 085 901
Membres
103 026
dernier inscrit
NAT dan