IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec les formules dans vba [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé

    Homme Profil pro
    Pilote d'essais retraité
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Pilote d'essais retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 799
    Points
    799
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("XX").FormulaLocal
    et là je n'obtenais plus d'erreur d’exécution donc content mais le résultat ramené par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre éclairé

    Homme Profil pro
    Pilote d'essais retraité
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Pilote d'essais retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 799
    Points
    799
    Par défaut Précisions
    Re bonjour,

    j'ai résolu mon problème premier qui était sur la formule à insérer dans le champ critère en recherchant sur le web us.
    Les anglophones n'utilisent pas le ; comme séparateur de fonction mais une ,

    Ceci me permet de modifier la formule à insérer dans la cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ="=ET(A2>=01/11/2014;A2<=20/11/2014)"
    en
    ="=AND(A2>=01/11/2014,A2<=20/11/2014)"
    Mais bon le problème reste entier en ce sens que je n'ai plus d'erreur d'exécution en inscrivant la formule "anglaise" dans la cellule critère mais la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.WorksheetFunction.DCountA(Sheets("BDD").Range("Data"), "CHAMP", Sheets("BDD").Range("K1:N2"))
    persiste à me renvoyer 0 dans le userform alors que sa copine écrite dans la feuille me renvoie le bon résultat !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =BDNBVAL(Data; "CHAMP";K1:N2)
    Any idea ?

    Merci encore

  3. #3
    Membre éclairé

    Homme Profil pro
    Pilote d'essais retraité
    Inscrit en
    Septembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Pilote d'essais retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 47
    Points : 799
    Points
    799
    Par défaut 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

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Excel interprète toujours les valeur ainsi le 04/01/2014 devient le 01/04/2014 tu parle d'un poisson!

    il faut utiliser des date au format international : 2014-01-04

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="=AND(A2>=" &  Format("01/11/2014","yyyy-mm-dd") & ",A2<=" & format("20/11/2014","yyyy-mm-dd") & ")"
    Dernière modification par Invité ; 21/11/2014 à 12h08.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 11h11
  2. Réponses: 8
    Dernier message: 15/12/2006, 18h15
  3. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 20h30
  4. Réponses: 4
    Dernier message: 01/05/2006, 23h53
  5. [MFC] problème avec les insertions dans CComboBox
    Par Joeleclems dans le forum MFC
    Réponses: 12
    Dernier message: 11/06/2004, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo