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 :

"Incompatibilité de type" dans une formule


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut "Incompatibilité de type" dans une formule
    Bonjour,

    Voilà en quelques mots mon problème.

    Je dois remplir chaque cellule d'une colonne avec une formule assez longue et cela de manière dynamique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrFormula = "=SI(SOMMEPROD(($M$1:M[" & j - 1 & "]=M[" & j & "])*(T$1:T[" & j - 1 & "]=T[" & j & "]))=0;SOMMEPROD(($M$2:$M$[" & NbLignes & "]=M[" & j & "])*($T$2:$T$[" & NbLignes & "]=T[" & j & "]);$AX$2:$AX$[" & NbLignes & "])/SOMME.SI($M$2:$M$[" & NbLignes & "];M[" & j & "];$AX$2:$AX$[" & NbLignes & "]);\" \ ")"
    Avec j = Ligne parcourue actuellement
    C'est assez immonde, je vous l'accorde, j'ai mis en couleur les chaines que je concatène pour que ce soit un peu plus clair.

    Lorsque je lance l'execution, il me sort l'erreur 13 : "Incompatibilité de type".

    Si quelqu'un a une idée...

    Merci bien

  2. #2
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Bon, je m'auto-répond.

    C'est une erreur à la fin, tout bêtement. au lieu de \"\" (on n'est pas en C) il faut """".

    Mais un autre problème se pose. Je veux maintenant l'affecter à un attribut "formula" d'une cellule, suite logique me direz-vous. Mais le malheur s'abt sur moi dans ce monde de brute.... et...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StrFormula = "=SI(SOMMEPROD(($M$1:M[" & j - 1 & "]=M[" & j & "])*(T$1:T[" & j - 1 & "]=T[" & j & "]))=0;SOMMEPROD(($M$2:$M$[" & NbLignes & "]=M[" & j & "])*($T$2:$T$[" & NbLignes & "]=T[" & j & "]);$AX$2:$AX$[" & NbLignes & "])/SOMME.SI($M$2:$M$[" & NbLignes & "];M[" & j & "];$AX$2:$AX$[" & NbLignes & "]);"""")"
     
     
    Cells(j, 66).FormulaR1C1 = StrFormula
    ... ne marche pas.

    Erreur retournée : 1004 " définie par l'application ou l'objet"

    Je pense que je me perds dans laa syntaxe...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    A la place de
    essaye
    pour voir

    Starec

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Non PLus...

    quelle est la différence ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'utilise souvent FormulaLocal quand les termes sont en français.

    Pourquoi les """" à la fin ?

    Starec

  6. #6
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    POur laisser la cellule vide au cas ou elle ne devrait pas etre remplie.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Et seulement avec "" devrait suffire.

    Starec

  8. #8
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Non plus....

    j'avais essayé en anglais et ca ne passait pas non plus.
    En fait je me demande ce qui renvoit l'erreur... Est-ce que l'erreur peut etre soulevée a cause d'une simple erreur de syntaxe ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Est-ce que la fonction (en plaçant des données à la place) des variables fonctionne quand tu la mets dans une cellule Excel ?

    Starec

  10. #10
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Oui oui, j'avais fait les tests.
    Mais les premieres lignes de mon tableau sont vides. Je devrais d'abord la supprimer ?
    Ca devrait quand meme pas poser probleme, puisqu'a priori l'érreur se situe lorsque la formule est attribuée a la cellule.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Lorsque ta formule fonctionne tu as aussi des crochets ?

    Starec

  12. #12
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Non, je les ai rajouté pour tester. Meme sans, ca ne marche toujours pas.

  13. #13
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    je pense que j'ai trouvé la solution :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StrFormula = "=SI(SOMMEPROD(($M$1:M" & j - 1 & "=M" & j & ")*(T$1:T" & j - 1 & "=T" & j & "))=0;SOMMEPROD(($M$2:$M$" & NbLignes & "=M" & j & ")*($T$2:$T$" & NbLignes & "=T" & j & ");$AX$2:$AX$" & NbLignes & ")/SOMME.SI($M$2:$M$" & NbLignes & ";M" & j & ";$AX$2:$AX$" & NbLignes & ");" & Chr(34) & Chr(34) & ")"
    Cells(1, 2).FormulaLocal = StrFormula

    c'est inbuvable je sais mais en gros j'ai enlevé les [ ] et remplacé le """" par des Chr(34)
    ensuite, comme c'est du francais remplacé FormulaR1C1 par FormulaLocal

    essaye voir si ca marche ^^

  14. #14
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 18
    Par défaut
    Extra !


    L'insertion marche, la chaine est exacte. Aprés le calcul rate, mais c'est un autre problème ^^ !

    Merci beaucoup pour votre implication !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/04/2014, 13h16
  2. Comment insérer une variable dans une formule type R1C1
    Par jo385 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2008, 14h20
  3. Réponses: 4
    Dernier message: 28/04/2008, 18h50
  4. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 17h57
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 13h46

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