Problème avec les formules dans vba
Bonjour à tous,
cela fait maintenant un moment que je galère avec les champs de critères utilisés avec la fonction BDNBVAL et mes recherches sur le web ne donnent rien.
Je veux utiliser des filtrages sur des dates et d'autres champs pour obtenir le comptage des données comprises entre deux dates et respectant les autres critères.
Je parviens tout à fait à faire fonctionner cette fonction de façon manuelle dans la feuille de calcul. Le problème survient lorsque j'essaie d'automatiser le tout à l'aide d'un userform dans lequel je remplis des listbox à l'aide des différentes valeurs filtrées depuis les champs de ma base de données contenue dans la feuille de calcul et ensuite je renseigne les champs de critère désirés. Lorsque le champ est un critère simple du style ="=TOTO" ou =">=10/11/2014" tout va bien mais lorsque je veux créer un champ calculé du type =ET(A2>=01/11/2014;A2<=20/11/2014) où A2 est la première cellule du champ date, je bute sur un problème simple: je ne sais pas réaliser la traduction anglaise de cette formule. j'ai essayé un =AND(.... mais sans succès!
J'ai alors utilisé
Code:
Range("XX").FormulaLocal
et là je n'obtenais plus d'erreur d’exécution donc content mais le résultat ramené par
Code:
Application.WorksheetFunction.DCountA(Sheets("BDD").Range("Data"), "CHAMP", Sheets("BDD").Range("K1:N2"))
me renvoit 0 alors que dans la feuille cela fonctionne. Je pense donc que le problème vient du fait que WorsheetFunction veut une formule écrite en anglais car elle n'effectue pas de traduction automatique.
Voilà, je pense que j'ai tout dit.
Merci d'avance de votre patience à me lire
Pour finir avec cette histoire
Bonsoir à tous
pour ceux que cela intéresse, j'ai résolu mon problème en récupérant la valeur calculée correctement dans la feuille de calcul pour l'afficher dans le UserForm.
Mais bon je ne m'explique toujours pas le phénomène.
Bonne soirée:oops: