Re : Formule saisie avec VBA n'affiche pas le même résultat dans la cellule FR/US
Bonjour Dut et Modeste,
Si tu emploies FormulaLocal pour obtenir une formule dans la feuille de calcul,
Tu dois utiliser le nom des fonctions en Français : DateValue ->Français -> DateVal
La bonne syntaxe avec formulaLocal :
Range("A1").FormulaLocal = "=Feuil2!a1>=DATEVal(""03/01/2012"")"
Si tu veux utiliser le nom des fonctions en anglais, tu dois utiliser Formula
Range("A1").Formula = "=Feuil2!a1>=DATEVALUE(""03/01/2012"")"
À l'ami Modeste, je suis curieux de voir où il a vu la fonction "Date()"
utilisée avec des paramètres comme ceux qui proposent dans cette expression
ThisWorkbook.Sheets("Critères").Cells(1, 1).Formula = "=Data!I2>=DATE(2012,3,1)"
Bien que cela fonctionne, DATE(2012,3,1) est une fonction de la feuille de calcul et
non de VBA. L'équivalent en VBA est DateSerial().
En Conséquence, tel que le suggère l'expression "Formula" il faudrait utiliser "DateSerial"
au lieu de "Date" mais surprise, l'expression "DateSerial n'est pas traduite en français et
en l'occurrence, la cellule affiche la valeur d'erreur #NOM!
Peut-être que le spécialiste des dates a une explication?
Je vais quand même m'en tenir à cette syntaxe :
range("A1").Formula = "=Data!I2>=DATEValue(""2012/12/01"")"
Le format "yyyy/mm/dd" est le seul format DATE universel dans toutes les langues
qu'utilise Excel.
Pour ceux qui lisent l'anglais, il y a ceci à titre de complément :
L'adresse du site Internet de "Ron de Bruin"
ISO Date Representatation and Week Numbering