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

Excel Discussion :

VBA Utilisation de sumproduct avec des conditions de dates


Sujet :

Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Par défaut VBA Utilisation de sumproduct avec des conditions de dates
    Bonjour,

    J'utilisais une macro pour mettre des formules dans des cellules, et cela fonctionne tres bien.
    Cependant, vu le nombre très important de formules dans ma page, j'ai maintenant un message d'erreur m'indiquant qu'excel ne peut plus calculer la page.

    Je m'oriente donc vers un calcul via VBA et non pas formule Excel.

    Voici le code qui me permet de mettre une formule dans une cellule et qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("D5").Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT((OPEX_CAPEX=""CAPEX"")*(LEFT(Sur_hors_contrat,1)=""N"")*((Société=311)+(Société=312)+(Société=313)+(Société=314)+(Société=315)+(Société=316)+(Société=317)+(Société=318))*((Date_de_saisie_facture=Date_extrac-4)+(Date_de_saisie_facture=Date_extrac-5)+(Date_de_saisie_facture=Date_extrac-6)+(Date_de_saisie_facture=Date_extrac-7)+(Date_de_saisie_facture=Date_" & _
            "extrac-8)+(Date_de_saisie_facture=Date_extrac-11)))" & _
            ""
    Et voici ma tentative pour que le calcul soit fait directement par VBA et afficher uniquement le résultat.
    Le code fonctionne tant que je ne mets pas de condition de date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D5").Value = Evaluate("SumProduct((OPEX_CAPEX = ""CAPEX"") * (Left(Sur_hors_contrat, 1) = ""N"") * ((Société = 311) + (Société = 312) + (Société = 313) + (Société = 314) + (Société = 315) + (Société = 316) + (Société = 317) + (Société = 318)) * ((Date_de_saisie_facture = Date_extrac-4) + (Date_de_saisie_facture = Date_extrac-5) + (Date_de_saisie_facture = Date_extrac-6) + (Date_de_saisie_facture = Date_extrac-7) + (Date_de_saisie_facture = Date_extrac-8) + (Date_de_saisie_facture = Date_extrac-11)))")
    Pour ce qui est des variables, elles sont définies dans le gestionnaire de noms et correspondent toutes à une colonne du type $A:$A
    seul Date_extract =7*NO.SEMAINE.ISO(AUJOURDHUI())+DATE(ANNEE(AUJOURDHUI());1;3)-JOURSEM(DATE(ANNEE(AUJOURDHUI());1;3))-4.

    Je n'arrive pas à trouver quel est le problème.
    Je vous remercie pour l'aide que vous pourrez m'apporter.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Chart mettre un axe avec des dates
    Par rvzip64 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/10/2005, 12h36
  2. [VB.NET] Requete avec des dates dans un DataSet
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2005, 15h30
  3. Requetes avec des dates
    Par PrinceMaster77 dans le forum SQL
    Réponses: 1
    Dernier message: 22/11/2004, 18h46
  4. [Requête] Difficile (impossible ?) avec des dates
    Par starch dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/04/2004, 12h26
  5. Réponses: 1
    Dernier message: 06/08/2003, 12h48

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