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

Conception Discussion :

Afficher une date comprise dans ensemble de cellules si elle correspondant au mois d'une autre cellule [XL-2007]


Sujet :

Conception

  1. #1
    Membre à l'essai
    Homme Profil pro
    AUTRE
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : AUTRE

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut Afficher une date comprise dans ensemble de cellules si elle correspondant au mois d'une autre cellule
    salut a tous

    j'ai besoin d'afficher une date dans une cellule A1:

    si une date dans un ensemble 'nomdelafeuille'!B17:B21 (une liste de date se trouvant dans une colonne d'une autre feuille), correspond au mois d'une autre date définit dans une autre cellule B6 alors afficher la date contenue dans la cellule qui a été trouvée dans 'nomdelafeuille'!B17:B21.

    j'ai fais plusieurs essaies mais tourne en ronds depuis plusieurs heures.

    si je recherche ma valeur dans une case pas de problème j'ai crée la formule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)='nomdelafeuille'!B17;"";'nomdelafeuille'!B17)
    en B6 j'ai une date du mois d'octobre et 'nomdelafeuille'!B17 j'ai 18/10/2014 et 18/10/2014 s'affiche bien en A1.

    j'ai essayé avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI.ENS('nomdelafeuille'!B17:B21;MOIS(B6))
    mais dans ce cas en A1 j'obtiens 00/01/1900.

    avec la fonction RECHERCHEV j'obtiens rien de mieux que des erreurs du genre : #N/A , #Valeur?, #NOM?

    si qu'un pouvais m'orienter vers une solution, ca serait super sympa.

    merci par avance de votre aide.

  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
    12 721
    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 : 12 721
    Points : 28 544
    Points
    28 544
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour ma part et d'après tes explications,
    en B6 j'ai une date du mois d'octobre et 'nomdelafeuille'!B17 j'ai 18/10/2014 et 18/10/2014 s'affiche bien en A1.
    je serais très étonné que tu obtiennes le résultat escompté avec cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)='nomdelafeuille'!B17;"";'nomdelafeuille'!B17)
    Il y a deux erreurs dans cette lignes de code
    D'une part, tu peux mettre n'importe quelle date en B17 de la feuille nomdelafeuille la formule te renverra la valeur de B17 puisque le résultat est FAUX
    Tu demandes à la fonction SI de comparer le mois d'une date avec une autre date alors qu'en principe on compare le mois d'une date avec le mois d'une autre date
    La deuxième erreur est dans la syntaxe de SI. qui est : Si la condition se trouvant dans le 1er argument est VRAI alors renvoie le résultat du 2ème argument, dans le cas contraire renvoie le 3ème argument.
    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 à l'essai
    Homme Profil pro
    AUTRE
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : AUTRE

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    bonjour philippe,

    ton raisonnement est juste, utilisant la fonction SI depuis déjà des années, je me suis effectivement fait la même réflexion, car au début ma formule était:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)='nomdelafeuille'!B17;'nomdelafeuille'!B17;"")
    mais je n'obtenait pas ce que j'attendais, mais evidement "".

    en écrivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)='nomdelafeuille'!B17;"";'nomdelafeuille'!B17)
    j'obtenais bien le résultat que j'attendais, et me suis satisfais de cette solution, hors je viens maintenant de remplacer la cellule 'nomdelafeuille'!B17 par 'nomdelafeuille'!B18 dont la date est 05/11/2014 et effectivement peut importe ce qu'il y a en B7, cette valeur n'est pas considérée, et la date 05/11/2014 de la cellule 'nomdelafeuille'!B18 s'affiche en A1. mon résultat est donc faux.

    dans le cas présent, il faut donc que réécrive ma formule de départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)='nomdelafeuille'!B17;'nomdelafeuille'!B17;"")
    et que je remplace 'nomdelafeuille'!B17 par MOIS(nomdelafeuille'!B17) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(B6)=MOIS(nomdelafeuille'!B17);nomdelafeuille'!B17;"")
    mais cela ne résous pas mon problème par rapport à la recherche de la date dans l'ensemble des dates contenues dans la colonne désignée.

    a moins de concaténer une suite de la formule de base en remplaçant a chaque fois les "" par SI(MOIS(B6)=MOIS(nomdelafeuille'!B17);nomdelafeuille'!B17; et en indiquant la cellule suivante à chaque nouvelle chaine.

    ce qui donne dans mon contexte réel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(MOIS(M2)=MOIS('Jours fériés'!E2);'Jours fériés'!E2; SI(MOIS(M2)=MOIS('Jours fériés'!E3);'Jours fériés'!E3; SI(MOIS(M2)=MOIS('Jours fériés'!E4);'Jours fériés'!E4; SI(MOIS(M2)=MOIS('Jours fériés'!E5);'Jours fériés'!E5; SI(MOIS(M2)=MOIS('Jours fériés'!E6);'Jours fériés'!E6; SI(MOIS(M2)=MOIS('Jours fériés'!E7);'Jours fériés'!E7;""))))))
    mais j'aurais quand même préférer utiliser d'autres fonctions pour faire plus court, ça me permettrait aussi de voir l'utilisation d'autres fonctions que de toujours utiliser la fonction SI dans des chaines qui parfois n'en finissent plus.

    quelqu'un pourrait il m'orienter vers une fonction ?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 721
    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 : 12 721
    Points : 28 544
    Points
    28 544
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai beau relire tes explications, je n'ai pas compris ce que tu veux exactement.
    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

  5. #5
    Membre à l'essai
    Homme Profil pro
    AUTRE
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : AUTRE

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    bonjour philippe,

    j'ai besoin d'afficher une date dans une cellule A1:

    si une date dans un ensemble 'nomdelafeuille'!B17:B21 (une liste de date se trouvant dans une colonne d'une autre feuille), correspond au mois d'une autre date définit dans une autre cellule B6 alors afficher la date contenue dans la cellule qui a été trouvée dans 'nomdelafeuille'!B17:B21.
    Autrement dit:

    en B6 j'ai une date qui me sert de référence, cette date n'est pas forcement la même sa valeur peut être variable selon certains critères. ex: 02/10/2014.

    en 'nomdelafeuille'!B17:B21 il y a une liste de dates.

    ex:

    B17 : 05/08/2014
    B18 : 09/09/2014
    B19 : 18/10/2014
    B20 : 02/11/2014
    B21 : 05/12/2014

    les valeurs des dates peuvent être variables, B17 n'est pas forcément lié au 05/08/2014 elle peut être 10/10/2015 par exemple et idem pour l'ensemble des dates contenues dans 'nomdelafeuille'!B17:B21

    en A1 seule la date ayant le même MOIS que dans B6 doit s'afficher. dans le cas de l'exemple, doit s'afficher la date contenu dans 'nomdelafeuille'!B19 soit 18/10/2014; mais dans un autre cas la date correspondante au MOIS de la date contenue en B6 peut se trouvée dans n'importe quelle cellule de l'ensemble 'nomdelafeuille'!B17:B21

    si l'ensemble 'nomdelafeuille'!B17:B21 contient des cellules vides ou aucune date dont le MOIS correspond au MOIS de la date contenue en B6 alors A1 doit resté vide et afficher ""

    pour info l'ensemble 'nomdelafeuille'!B17:B21 ne contient pas de date ayant deux fois le même MOIS, chaque cellule de l'ensemble 'nomdelafeuille'!B17:B21 contient donc une date ayant un MOIS différent ou peu être vide.

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 721
    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 : 12 721
    Points : 28 544
    Points
    28 544
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici une solution avec les formules INDEX, SOMMEPROD, et LIGNE imbriquée dans la formule SIERREUR.
    La formule placée en cellule A1, renverra la date contenue dans la plage B17:B21 dont le mois sera identique au mois de la date se trouvant en B7 et s'il n'y a pas de correspondance, la formule renverra une chaîne vide.
    Pour que la formule renvoie une date correcte, il ne peut y avoir dans la plage B17:B21 plus d'une date ayant le même mois. Il n'y a pas de distinction d'année dans la recherche puisqu'il n' y avait rien de précisé à ce sujet dans la demande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(B17:B21;SOMMEPROD( (MOIS($B$17:$B$21)=MOIS(B7)) * LIGNE(B17:B21)) - LIGNE(B17:B21) + 1);"")
    La formule SIERREUR ayant fait son apparition dans la version 2007, cette solution ne fonctionne pas dans les versions antérieures (il faudrait alors passer par une autre solution.
    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

  7. #7
    Membre à l'essai
    Homme Profil pro
    AUTRE
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : AUTRE

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    Bonjour Philippe,

    Je te remercie pour cette solution qui fonctionne à la perfection, ça fait vraiment plus cour que de concaténer une suite de la fonction SI.

    Pour les années cela ne change rien et n'a pas d'importance car la date en B7 et celles faisant partie de l'ensemble 'nomdelafeuille'!B17:B21 sont inclus dans l'année en cours.

    Je peux maintenant mettre ce poste en RESOLU.

    Bien cordialement.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2013, 01h48
  2. Afficher des dates comprises dans la semaine courante
    Par maxdata dans le forum Langage
    Réponses: 19
    Dernier message: 07/02/2013, 17h16
  3. afficher une date vide dans un état de sortie
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2012, 19h26
  4. Extraire le mois d'une date dans une cellule
    Par StyveA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/07/2010, 18h28
  5. afficher une date contenue dans une autre table..
    Par gide_x dans le forum Requêtes
    Réponses: 0
    Dernier message: 24/08/2008, 00h36

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