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 :

Comment utiliser "Application.SumProduct" ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    dessinateur
    Inscrit en
    Novembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dessinateur

    Informations forums :
    Inscription : Novembre 2014
    Messages : 12
    Par défaut Comment utiliser "Application.SumProduct" ?
    boujour!

    J'ai lu cette discussion.

    j'essaie de me servir de vos code mais peu importe le code que j'utilise ca me donne toujours 0????

    Merci de votre aide!

    je joint mon fichier ET P.S.: NE REGARDER PAS MON CODE J'AI AUCUNE FORMATION ;-(
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    peux-tu nous copier ta procédure contenant SumProduct afin qu'on puisse tenter de t'aider ?



    je rebondis sur ce que j'ai pu lire sur ce fil, il est indiqué :
    En VBA,Tu ne peux pas utiliser SUMPRODUCT avec worksheetfunction
    je suis assez surpris ... puisque je l'utilise très très souvent ... et pas plus tard qu'il y a une heure dans ce bloc With (pas très joli, je vous l'accorde, c'est un premier jet fonctionnel !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With FEUILLE_FILTRE
        .Range("A5") = "NOMBRE"
        .Range("B5") = "DELAIS"
        CLASSEUR_BDD.Worksheets(Split(CLASSEUR_BDD.Name, ".")(0)).UsedRange.AdvancedFilter _
                                                                            Action:=xlFilterCopy, _
                                                                            Criteriarange:=.Range("A1").CurrentRegion, _
                                                                            CopyToRange:=.Range("A5:B5"), _
                                                                            Unique:=False
     
        FEUILLE_RESULTAT.Range("RESULTAT_FILTRE").Cells(Position, 1).Offset(0, 1 + k).Value = _
                            Round(Application.WorksheetFunction.SumProduct(.Range(.Cells(6, 1), .Cells(6, 1).End(xlDown)), .Range(.Cells(6, 2), .Cells(6, 2).End(xlDown))) _
                            / _
                            Application.WorksheetFunction.Sum(.Range(.Cells(6, 1), .Cells(6, 1).End(xlDown))), 2)
    End With

  3. #3
    Membre averti
    Homme Profil pro
    dessinateur
    Inscrit en
    Novembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dessinateur

    Informations forums :
    Inscription : Novembre 2014
    Messages : 12
    Par défaut
    merci pour ton aide Joe :-)

    mais n'oublie pas j'ai pas de formation en vb donc c'est du chinois ce code pour moi ;-(

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Ca tombe bien, on est deux ... le VBA je l'ai appris sur ce forum "tout seul, comme un grand"
    (Tutoriel, Faq, quelques sujets de discussions crées ... et beaucoup beaucoup de nuits blanches )


    je pense en revanche que même un débutant de niveau 0 est en mesure de fournir ce que j'ai demandé :

    peux-tu nous copier ta procédure contenant SumProduct afin qu'on puisse tenter de t'aider ?

  5. #5
    Membre averti
    Homme Profil pro
    dessinateur
    Inscrit en
    Novembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dessinateur

    Informations forums :
    Inscription : Novembre 2014
    Messages : 12
    Par défaut
    J'ai joint mon fichier excel avec mon code vb a l'interieur un peu plus haut dans le post!

    Merci encore pour ton aide Joe :-)

  6. #6
    Membre averti
    Homme Profil pro
    dessinateur
    Inscrit en
    Novembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dessinateur

    Informations forums :
    Inscription : Novembre 2014
    Messages : 12
    Par défaut
    Mon problème était un problème de format de cellule c'est tous ;-(

    est-ce que c'est possible de mettre certaine valeur en variable?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'exemple
    Dim i As Integer
    i = 1
    For i = 1 To QTEMTL
    MTL = "MATERIEL" & QTEMTL
    CC = "C9:C32"
    INSERTION = LIGNEFIN + 1 + i
    myarray = Evaluate("=--(C9:C31=""MTL"")") 'J'AIMERAIS AVOIR CE CODE EN VARIABLE EX.:= Evaluate("=--(CC="MTL")")
    myres = Application.WorksheetFunction.SumProduct(myarray, Range(DD), Range(GG))
    Range("C" & INSERTION).Value = "TOTAL PI2 " & "MATERIEL & i" & " = "
    Range("D" & INSERTION).Value = myres
    Merci de votre aide :-)

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

Discussions similaires

  1. Réponses: 57
    Dernier message: 02/06/2020, 20h54
  2. comment utiliser mes applications sur un autre ordinateur
    Par ghas1991 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 31/08/2008, 13h17
  3. Réponses: 3
    Dernier message: 26/02/2007, 11h31

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