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 :

[VBA-E] - formule matricielle


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Avant de laisser tomber, écris sur Excel, une formule qui va bien. Mets ton code ici. C'est bien le diable si l'un de ceux qui connaissent ne connaissent pas la bonne syntaxe
    Qu'on n'ait pas perdu tout ce temps pour rien, dont celui d'une canadienne sympa, merde quoi !

    Mais c'est toi qui choises

    A+

  2. #22
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    merci pour ton soutien ousk !

    selon l'aide en ligne, et ma sympathique touche , la syntaxe devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Selection.FormulaArray = "=SOMME((R10C5:R18C5)*(R10C14:R18C14<>""""))"
    mais bon le résultat -> NOM?

  3. #23
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    j'ai également essayé cette syntaxe qui n'est pas acceptée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    selection.formulalocal ="FORMULE.MATRICIELLE("=SOMME((R10C5:R18C5)*(R10C14:R18C14<>""""))")"
    bon je vais me détendre un peu, je reprendrais sa plus tard, si quelqu'un a une idée... merci d'avance.

    a + tard et bonne continuation

  4. #24
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tant pis pour toi, tu l'auras voulu...
    Essaie ça
    =SOMME(E10:E18)* SI(SOMME(N10:N18)<>"";SOMME(N10:N18);"")

    et colle des données dans la plage référencée

    Non mais !

    A+

  5. #25
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Et ça, ça donne quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.FormulaArray = "=SUM((R10C5:R18C5)*(R10C14:R18C14<>""""))"
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #26
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    bonjour à tous !

    que demander de mieux que d'embaucher le matin, de regardé son sujet pour trouvé une éventuelle réponse, qui marche !!! . merci alain, il fallait bien mettre SUM comme fonction, maintenant sa marche nickel. merci ossi a ousk, vesta et zazaraignée d'avoir pris la peine de m'aider bonne continuation à tous !

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Oui à mon avis y'a un problème avec les formules "locales" utilisées sous Excel (en français ...SOMME) et internationales sous VBA(...SUM).
    Si la formule que tu as rentré dans ton tableur marche sous Excel, tu n'as qu'à essayer de l'enregistrer via l'enregistreur de macro.C'est là que tu trouveras la solution à mon avis!


    Ma formule matricielle sous Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(SI(ESTVIDE(Z11:Z9410);"";SI($AD11:$AD9410=1;SI($AQ11:$AQ9410>1;1;"");"")))
    donne avec l'enregistreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Selection.FormulaArray = _
            "=SUM(IF(ISBLANK(R[4]C:R[9403]C),"""",IF(R[4]C30:R[9403]C30=1, _
    IF(R[4]C43:R[9403]C43>1,1,""""),"""")))"
    après à toi de l'adapter à ta formule

  8. #28
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    bon j'ai fais des tests avec des formules simples sa marche correctement. le problème c'est que j'ai un souci de syntaxe avec les formules que doit intégrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.FormulaArray = "=SUM((R(-" & li + 1 & ")C:R(-3)C)*(R(-" & li + 1 & ")C(9):R(-3)C(9)<>""""))"
    donc celle la ne marche pas, j'ai essayé alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.FormulaArray = "=SUM((R(-" & li + 1 & ")C:R(-3)C)*(R(-" & li + 1 & ")C(9):R(-3)C(9) <>" & """ & """ & " )))"
    marche toujours pas ! je ne vois pas pourquoi la première syntaxe m'a l'air correcte pourtant !

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Yo selon mon humble avis il doit y avoir un problème entre reférence relatiive et absolue!Je sais pas si tu vois ce que c'est.
    relative:par rapport à la cellule de la formule
    absolue:par rapport à 0

    J'ai chopé çà sur le tutorial VBA si çà peut t'aider...
    Citation Envoyé par tutorial VB
    Dans le tableau suivant, nous voyons l'écriture de l'adresse "B2"
    dans la cellule "A1" dans tous les modes
    Références A1 L1C1
    Ligne Colonne
    Absolue Absolue =$B$2 =R2C2
    Absolue Relative =B$2 =R2C(1)
    Relative Absolue =$B2 =R(1)C2
    Relative Relative =B2 =R(1)C(1)
    Donc à mon avis y'a des parenthèses qui se baladent dans ta ligne de code...

  10. #30
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    c'est ce que je pensais aussi, ok je vais regardé sa alors. merci pour ton aide !

  11. #31
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    donc voila ma nouvelle formule, les reférences de colonnes sont absolues ,mais les reférences de lignes, elles sont relatives :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Selection.FormulaArray = "=SUM((R(-" & li + 1 & ")C5:R(-3)C5)*(R(-" & li + 1 & ")C14:R(-3)C14 <>"""" ))"
    et toujours la même erreur avec la méthode formulaArray !

  12. #32
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    bon j'ai restructuré entièrement ma formule et sa donne sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Selection.FormulaArray = "=SUM((R10C5:R" & nblig & "C5)*(R10C14:R" & nblig & "C14 <>""""))"
    et sa a l'air de marché ! merci a tous !

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    J'ai une idée!!!!
    au lieu d'utiliser un truc tout fait!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.FormulaArray = "=SUM((R10C5:R" & nblig & "C5)*(R10C14:R" & nblig & "C14 <>""""))"
    tu peux faire comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    resultat=0
    for ligne=10 to nblig
       if cells(ligne,14)<>"" Then
         for col=1 to 5 
           resultat=resultat +cells(ligne,col)
         next col
       endif
    next i

    J'ai écris çà vite fait sur le forum après à toi de vérifier!

  14. #34
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    je te remercie tinmarbusir mais j'ai testé ma formule dans plusieurs autres cas, et elle fonctionne. mais c'est vrai que ton idée me paraît tout aussi convenable. mais je vais rester sur ma formule.

    merci a toi pour tes indications qui m'ont bien éclairées !

  15. #35
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Tu veux pas me montrer ce que çà donne parce que je suis en plein dans les formules matricielles en ce moment çà m'aiderai bien aussi...

  16. #36
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    jte l'ai montré au dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Selection.FormulaArray = _
    "=SUM((R10C5:R" & nblig & "C5)*(R10C14:R" & nblig & "C14 <>""""))"
    nblig étant une variable qui prend la valeur de la dernière ligne de mon tableau. en fait les parenthèses en gras ne sont pas utiles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    Selection.FormulaArray = _
    "=SUM((R(" & nblig & ")C5:R(-3)C5)*(R(" & nblig & ")C14:R(-3)C14 <>"""" ))"
    par contre je pense qu'il faut préférer mettre autre chose que R(-3)C5, comme par exemple une variable car j'ai l'impression que formulaArray n'apprécie pas trop

  17. #37
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    On pourrait penser que nblig c'est le nombre de lignes...mais si tu te comprend
    Au lieu de R(-3) écris plutôt "...R" & ligne1 & "..."
    salut

  18. #38
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 121
    Par défaut
    justement c'est ce que j'ai fait, bon la j'ai adapté pour te montré mais ma formule finale, c'est celle juste au dessus de la dernière que je t'ai montré.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] Ecrire en Vba une formule matricielle
    Par INFINITY100 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2015, 13h40
  2. Formule matricielle VBA
    Par ninette24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/04/2013, 15h15
  3. [XL-2007] Challenge : formule matricielle ne marche plus quand elle est insérée par VBA
    Par Tchesko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/10/2012, 11h29
  4. vba - problème enregistrement de formule matricielle
    Par philppe27 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2012, 17h41
  5. [XL-2003] Formule matricielle en VBA
    Par jackall dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/06/2009, 11h24

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