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 :

Condition : calcul du nombre de jours consécutifs sur une période


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Condition : calcul du nombre de jours consécutifs sur une période
    * Bonjour, *

    Ce post fait suite à une demande concernant la fonction NB.SI.ENS.
    Je voudrais sur mon fichier poser des conditions pour attribuer ou pas des jours de fractionnement

    http://www.developpez.net/forums/d13...nction-nb-ens/

    les conditions
    dès que la somme de "C" = 18 et qu'il y a 12 "C" consécutifs entre des dates données 01/06/AAAA et le 31/10/AAAA alors conditions remplies
    ensuite cela envoi à une seconde conditions :
    - 2 si on a 6 "C" après le 01/11/AAA
    - 1 si on a 3 "C" après le 01/11/AAA
    etc ...

    * 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
    12 910
    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 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce post fait suite à une demande concernant la fonction NB.SI.ENS.
    Je voudrais sur mon fichier poser des conditions pour attribuer ou pas des jours de fractionnement
    Quelle est la question exactement ?
    Calculer suivant quelles conditions ?
    Sans avoir un minimum d'explications supplémentaires il est difficile de répondre.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Oups
    désolé
    déjà voici mon fichier.
    ce que j'aimerais pouvoir faire c'est de calculer, dans la Feuille Soldes_CP,
    les jours de fractionnement par rapport aux conditions ci dessus et à partir des données de la feuille planning
    Fichiers attachés Fichiers attachés

  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 910
    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 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour calculer le nombre de code "C" entre deux dates, j'utilise la formule SOMMEPROD
    pnDate la plage contenant les dates, pnCode la plage contenant les codes, StartDate la date de départ, EndDate la date de fin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD( (pnDate>=StartDate) * (pnDate<=EndDate) * (pnCode="C") * 1)

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bonjour Philippe,
    Mon problème exact est de savoir sur la plage du 01/06/AAAA au 31/10/AAAA
    si il y a 12 "C" consécutifs soit 12 jours de congés de suite pour la Ligne AA ou AB ...
    Ta fonction permet effectivement de calculer le nombre de "C" sur une plage donnée mais, si je ne me trompe pas, elle ne renvoi pas un test logique à la condition.
    As tu une idée ?

  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 910
    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 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quel test logique attends-tu ?
    VRAI ou FAUX ?
    Avec n'importe quelle formule tu peux l'obtenir, il suffit de placer une comparaison logique derrière la formule.
    Exemple Formule>10

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bonsoir Philippe
    Effectivement je pourrais de façon simple mettre une fonction logique pour chaque série de 12 cellules "C" consécutives sur la feuille Planning à chaque fin de moi pour chaque ligne AA ou AB ... mais les séries de date ne se trouvent pas du tout sur les mêmes plages

    j'aimerais le faire sur la feuille Soldes_CP de façon automatique
    qui par la suite me permettrait suivant une autre condition rajouter 2 ou 1 jour de fragmentration
    je ne sais pas sur quoi m'orienter pour définir la plage de recherche du 01/06/AAA au 31/10/AAAA pour trouver 12 numéros séquentiels consécutifs

    En gros SI la personne AA a pris 12 "C" consécutifs dans la période du 01/06/AAAA au 31/10/AAAA ET 6 "C" après le 01/11/AAAA ALORS il aurait 2 jours de plus SI 3 "C" après le 01/11/AAAA ALORS il aurait 1 jours SI moins de 3 JOURS 0
    la condition à ecrire est simple comme ca mais je pêche beaucoup pour la réaliser

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Trop compliqué apparemment !!!!
    Bon je vois que ma demande d'aide est trop compliquée !!!
    En tout cas merci à ceux qui m'ont aidé
    et dommage pour mon projet

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu n'as pas pensé que c'est à cause de ta demande qui n'est peut être pas assez claire pour intéresser les forumistes?

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Precision sur ma demande d'aide
    le fichier test.xlsx comporte 3 feuilles :

    - Planning : sur cette feuille se trouve :
    * les mois allant de juin à mai.
    (1 mois se situe sur une plage de 20 lignes et 32 colonnes)
    * les personnes
    * les jours
    * des valeurs (C pour congés R pour récup et RTT pour RTT)

    - Soldes_CP : sur cette feuille se trouve les informations du nombre de jours pris par personnes...

    - Jours_Fériés

    Philippe m'avait proposé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD( (pnDate>=StartDate) * (pnDate<=EndDate) * (pnCode="C") * 1)
    Cela effectivement calcule la somme de cellule "C" entre deux dates mais ne vérifie pas si les cellules "C" sont consécutives.

    Ma demande :
    Sur la feuille Soldes_CP j'aimerai pouvoir attribuer le droit à des jours fragmentés c'est à dire
    Une personne a 30 "C", si il a pris 18 "C" dont 12 "C" consécutifs entre le 01/06/AAAA et le 31/10/AAAA lui accorder des jours fragmentés.

    Etant donné que les mois ne se situent pas sur la même ligne je pêche pour trouver une fonction ou macro pouvant m'aider à vérifier ces conditions,
    parcourir les mois pour chaque personne pour vérifier si il y a 12 "C" consécutifs entre le 01/06/AAAA et le 31/10/AAAA.

    J'espère avoir éclairci ma demande qui sera encore plus claire en ouvrant le fichier.
    En tout cas merci à ceux qui ont pris le temps de lire mon post

  11. #11
    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 910
    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 910
    Points : 28 889
    Points
    28 889
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quelque chose m'échappe mais peut-être que la législation française est différente de la belge.
    Que la personne prenne trois fois 8 jours ou 24 jours à la suite il ne devrait pas y avoir de différence et je suppose que les week-ends et jours fériés ne sont pas comptés comme congés ?
    J'ai écrit il y a deux ans une gestion des congés similaire et j'ai géré cela à l'aide de trois feuilles pour ce qui est de la base données
    [/B]Une feuille avec la liste du personnel contenant les noms et prénoms, jours de congés autorisés.
    Une feuille avec la liste des congés avec en colonne A, le nom & prénom, colonne B Date début, colonne C date fin en D le nombre de jours de congés calculé à l'aide de la formule NB.JOURS.OUVRES
    Une feuille paramètres contenant les jours fériés de l'année.
    Pour la consultation, j'ai utilisé la formule SOMMEPROD parce-que je l'ai présenté sous forme de calendrier pour l'ensemble du personnel et j'ai aussi créé une feuille pour la consultation individuelle avec SOMMEPROD et aussi SOMME.SI.
    Le tout est dans la manière d'organiser ses données. Une feuille de données doit être organisée comme une table dans une base de données.
    Ensuite toutes les autres feuilles peuvent être crées comme un formulaire et permettre la consultation par personne, par mois, par années etc...
    Du moment que les données sont bien organisées on peut obtenir ce que l'on veut.
    Le problème c'est que la majorité des utilisateurs d'excel organisent les feuilles de données comme ils souhaiteraient les voir consultées.
    Ainsi dans maintes entreprises on voit les ventes de l'année organisées en 12 feuilles (une par mois) avec les vendeurs en lignes et les clients en colonnes ou vice-versa.
    C'est une très mauvaise façon de travailler avec excel.

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    dans mon cas la semaine de congé va du lundi au samedi soit 6 jours et effectivement le jour fériés n'est pas considéré comme congés.
    ensuite il y a en quelque sorte et excusez moi l'expression "la carotte" des jours fragmentés pour que le salarié ne pose pas 24 "C" consécutifs car si le solde de CP d'un salarié est égal à 9 après le 31/10/AAAA on lui donne 2 jours en plus.
    et il est vrai Philippe que j'ai peut être mal commencé mon fichier

Discussions similaires

  1. Comptage du nombre de dossiers actifs sur une période
    Par thtghgh dans le forum SAS Base
    Réponses: 4
    Dernier message: 18/07/2012, 11h53
  2. Réponses: 1
    Dernier message: 22/06/2011, 23h08
  3. Réponses: 5
    Dernier message: 17/03/2010, 17h11
  4. Réponses: 4
    Dernier message: 26/02/2010, 11h05
  5. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 15h22

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