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 :

Calcul sur les dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 442
    Par défaut Calcul sur les dates
    Bonsoir,

    Avec la formule ci-dessous je cherche à demander à Excel pour qu'il calcul à condition que le mois des dates en ligne soient <= au mois d'aujourdui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(AUJOURDHUI())>=MOIS(LigneDeMesDates);SOMMEPROD((Compte="M")*(LeMois=10)*(Categorie=$V$5));"")
    sous la ligne de mes dates j'ai des cellules avec des lettres comme"M" par exemple

    Avec cette formule il compte les données qui sont aprés octobre donc novembre, décembre etc. alors que je lui demande de s'arrêter au mois en cours.

    j'expère que j'ai bien expliquer le problème.

    Merci

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il ne serait pas inutile de donner les références de tes plages nommées, sinon on est en pleine supputation.
    Si la plage nommée LigneDeMesDates est une plage de cellules, il y a déjà un problème dans le début de cette formule (en rouge).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(AUJOURDHUI())>=MOIS(LigneDeMesDates);SOMMEPROD((Compte="M")*(LeMois=10)*(Categorie=$V$5));"")
    Le test logique que tu fais dans cette formule renverra VRAI si le mois de la date qui est en première cellule de la plage est inférieure au mois d'aujourd'hui, peut importe la valeur des autres cellules.
    Tu dois faire les tests dans les arguments de SOMMEPROD.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    pourquoi ajouter une condition si devant un sommeprod?
    essayes un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((Compte="M")*(LeMois=10)*(Categorie=$V$5)*(LeMois<=MOIS(AUJOURDHUI())

  4. #4
    Membre éclairé Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 442
    Par défaut
    Bonsoir et merci à vous deux pour les réponses,

    Daranc, ta formule fonctionne sur les mois 11 , 12 "vides" puisque nous sommes qu'en octobre mais à partir de janvier donc mois =1 il affiche un nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((Compte="M")*(LeMois=11)*(Categorie=$V$5)*(LeMois<=MOIS(AUJOURDHUI())
    = vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((Compte="M")*(LeMois=1)*(Categorie=$V$5)*(LeMois<=MOIS(AUJOURDHUI())
    J'ai une valeur alors que la cellule devrait être vide.

    Encore merci.

    Je pense que ça ne peux pas fonctionner car les infos ne sont pas ensemble

    "compte" est une plage de J13:FA100

    LeMois est sur la ligne 9 de J9:FA9

    Catégorie est en colonne de G13:G100

    Je voudrais compter les "M" avant ou égal à aujourd'hui, mais pas après.

    Merci encore.

  5. #5
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    le plus simple serait d'avoir deux dates butoirs


    01/02/2011 01/10/2012
    par exemple l'une en A1 l'autre en A2
    tu fais toujours le sommepord mais sur la date ( metton que ta plage date nommé soit "lemois"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sommeprod((lemois>= $A$1)*(lemois<$A$2)*(compte="M")*(Categorie=$V$5))
    chaque fois que l'égalité est vérifiée la valeur entre parenthèse est égale à 1
    dans le cas contraire 0
    sur quatre ligne ou une seule ligne vérifie les quatre conditions tu obtiens ceci:
    (1*1*1*1) + (1*1*0*1) +(1*1*1*0)+(0*1*1*1)=1
    Si deux ligne vérifie les quatre conditions
    (1*1*1*1) + (1*1*0*1) +(1*1*1*1)+(0*1*1*1)=2

    ce type de formule compte donc les occurence ou tout est VRAI ; VRAI=1 pour Excel
    si tu dois ajoute une valeur (facture) un champ numérique sera pris en compte et additionner après avoir était multiplier par 1

  6. #6
    Membre éclairé Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 442
    Par défaut
    Merci Daranc,

    J'ai bien compris la manœuvre je vais faire des essais.

    Bonne journée

Discussions similaires

  1. calcul sur les dates
    Par housni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2007, 16h38
  2. Oracle 10g - calcul sur les dates
    Par themateo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/08/2007, 10h50
  3. Calcul sur les dates
    Par Stargate SG1 dans le forum Access
    Réponses: 2
    Dernier message: 04/02/2007, 16h09
  4. [Dates] Calcul sur les dates...
    Par gawelldanor dans le forum Langage
    Réponses: 10
    Dernier message: 04/04/2006, 11h07
  5. [C#] Calcul sur les dates avec des DateTimePicker
    Par alizee971 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/04/2005, 17h14

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