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 :

Faire une somme sous condition de date


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Référent technique
    Inscrit en
    Février 2021
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Février 2021
    Messages : 37
    Par défaut Faire une somme sous condition de date
    Bonjour,

    J'essaye de me créer une base de suivi d'occupation de lits.
    Pour se faire, j'ai une base qui va du 01/01/N au 31/12/N.
    Dans un autre onglet je lui indique les différentes dispositions des lits (ceux qui sont ouverts et ceux qui sont fermés, et pourquoi).
    J'ai un traitement VBA qui me remplit ma base sans souci.

    Par contre je créé un onglet synthèse qui est censé m'indiquer, pour chaque mois, le cumul des lits ouverts et des fermés.
    Je passe donc d'un détail par jour à un regroupement mois, avec, bien évidemment, les problèmes inhérents aux dates (gestion de l'année, des mois à 30, 31 jours, et 28 ou 29 jours pour février).

    J'ai créé une formule dans l'onglet Synthèse en B3 qui me donne exactement le bon résultat. J'ai essayé de la retranscrire en vba (dans le sub test notamment), mais rien y fait, cela me ressort 0.
    Le plus fou, c'est que ma formule est même plus compliqué que ma formule en vba, puisque j'ai réussi à mettre le mois en automatique.
    J'ai tenté la formule directement dans le vba, j'ai tenté d'intégrer directement la formule à la place du résultat dans la cellule mais rien y fait, cela ne marche pas, je ne trouve pas les 837 journées correspondantes.

    Voici la ligne vba qui me rapporte 0:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Synthèse").Cells(2, 2) = WorksheetFunction.SumIf(Sheets("Base").Range("1:1"), "<=" & Val("31/01/" & Year(Sheets("Base").Range("E1"))), Sheets("Base").Range("2:2"))
    Et ma formule qui fonctionne et me rapporte 837:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI(Base!$1:$1;"<="&CNUM("31/"&MOIS("01/"&B1&"/"&ANNEE(Base!E1))&"/"&ANNEE(Base!E1));Base!$2:$2)
    Sauriez-vous où la bât blesse? Peut-être avez-vous une autre technique pour arriver à ce que je recherche, à savoir faire la somme en automatique par mois du détail par journée.

    Merci d'avance pour votre aide, ci-joint le fichier correspondant.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 370
    Par défaut
    Bonjour,

    Quand c'est possible, il est préférable d'éviter de passer par des macros. Une solution dans ce sens en attaché utilisant la formule suivante, la ligne 1 contenant les dates du 1er du mois (ligne que l'on peut éventuellement masquer par la suite).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(DECALER(Base!$1:$1;EQUIV($A3;Base!$B:$B;0)-1;0);Base!$1:$1;">="&Synth!B$1;Base!$1:$1;"<="&FIN.MOIS(Synth!B$1;0))
    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 548
    Par défaut
    Bonjour


    Tes cellules fusionnées rendent difficile l'exploitation par formules

    Pour ma part je ne ferais pas cela par VBA mais par PowerQuery (intégré à Excel) et TCD

    Tu calcules comment ton taux d'occupation ? (Total Autorisés - Total Fermés)/Total Autorisés ?

    J'en suis là. On peut affiché les fermés à vide si nécessaire.

    Edit : par rafraichi. Tu as 2 solutions comme cela
    Images attachées Images attachées  

Discussions similaires

  1. [XL-2010] Faire une somme sous une condition
    Par student12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/08/2012, 11h24
  2. Faire une somme sous condition
    Par passio dans le forum Excel
    Réponses: 3
    Dernier message: 12/01/2012, 23h09
  3. Faire une somme sous condition
    Par maystreet dans le forum Deski
    Réponses: 1
    Dernier message: 16/03/2009, 16h43
  4. [XML][Debutant]Faire une somme avec condition...
    Par cackybis dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/04/2006, 16h07
  5. Probleme pour faire une somme sous Excel
    Par Nicolas92 dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2005, 11h38

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