Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Trouver date début et fin de période sans interruption

bb78

XLDnaute Nouveau
Bonjour

J'ai vraiment besoin de votre aide concernant la date de début de période par rapport à une date.

J'ai par exemple 3 périodes d'arrêts de travail pour le même salarié
P1 : du 01/01 au 15/01

P2: du 01/03 au 31/03
du 01/04 au 30/04
du 01/05 au 31/05
du 01/06 au 30/06
du 01/07 au 31/07

P3 : du 15/08 au 31/08
du 01/09 au 15/09

lorsque je vais rechercher la date MIN, il va me trouver le 01/01 pour les 3 périodes et la date MAX le 15/09, ce qui me fait 258 jours d'arrêt sur l'année au lieu de 200 jours
Il faut que je trouve pour chaque période le MIN et le MAX soit pour P1 : le 01/01-15/01, pour P2 : le 01/03-31/05 et pour P3 : le 15/08-15/09

J'ai essayé avec MIN, MAX, GRANDE.VALEUR, PETITE.VALEUR mais je ne trouve pas de solution donc je bidouille avec la ligne au dessus ou en dessous mais le fichier doit être alimenté tous les mois donc si j'oublie de faire le tri, ca fausse les données.

Merci par avance pour votre aide précieuse
 

Pièces jointes

  • MIN MAX.xlsx
    15.5 KB · Affichages: 12
Solution
Avec le nouveau tableau la solution la plus simple passe par une macro :
VB:
Sub Calcul()
Dim c As Range, tablo, deb&, i&, j&
Application.ScreenUpdating = False
With [A1].CurrentRegion
    '---convertit les textes en dates- en colonnes D et E---
    On Error Resume Next
    For Each c In .Columns(4).Resize(, 2).SpecialCells(xlCellTypeConstants, 2) '
        c = CDate(c)
    Next c
    On Error GoTo 0
    '---tri sur les matricules et les dates---
    .Sort .Columns(1), xlAscending, .Columns(4), , xlAscending, .Columns(5), xlAscending, Header:=xlYes
    '---analyse du tableau---
    tablo = .Resize(.Rows.Count + 1, 10) 'matrice, plus rapide, 1 ligne de plus
    deb = 2
    For i = 3 To UBound(tablo)
        If tablo(i, 1) <> tablo(i - 1...

bb78

XLDnaute Nouveau
Bonjour à tous
Toutes mes excuses pour la réponse tardive, j'étais occupée sur un autre dossier mais un grand merci pour votre aide, j'ai bien réussi à garder les formules grâce à ton dernier bout de code job75.

Effectivement Chris, j'avais posté ma demande sur un autre forum mais n'ayant eu aucune réponse, je n'ai pas réussi à clôturer avant de venir poser ma demande ici mais le but des forums n'étant pas de trouver de l'aide ?
Concernant PowerQuery, malheureusement je ne connais pas du tout donc je n'ai pas pu essayer.

Je vous souhaite un bon week-end
 

job75

XLDnaute Barbatruc
Bonsoir bb78, chris,
oui mais le cross posting est peu apprécié et interdit par la charte des forums
Notre charte ne dit pas ça :
2.10 - Évitez de poser votre question sur plusieurs forums sur Internet, cette pratique s'appelle « cross posting" et elle peut être mal perçue par les membres répondant aux questions.
Perso je trouve le "cross posting" tout à fait normal.

Bonne nuit.
 

bb78

XLDnaute Nouveau
Bonjour
Je patauge encore beaucoup avec les macros, je jeterai un oeil sur PowerQuery par la suite, merci du conseil.
Je ne suis pas une habituée des forums et je ne comprends pas trop l'interdiction du cross posting si nous n'avons aucune réponse...mais maintenant je sais que pour les prochaines fois, je viendrai directement ici
 

Deadpool_CC

XLDnaute Accro
Bonsoir bb78, chris,

Notre charte ne dit pas ça :

Perso je trouve le "cross posting" tout à fait normal.

Bonne nuit.
Bonjour,
normal pour moi aussi : surtout si pas de réponse sur l'autre forum ...

Par contre en cas de Cross-posting ... aller sur l'autre forum pour mettre el lien de la réponse quand il y en a une afin que ceux qui aident ne cherchent pas pour rien si une réponse à déjà été trouvée
Car au final c'est plus le coté faire perdre son temps aux "aideurs" qui est énervant dans les cas de cross-posting.

Voila pour mon avis (que personne n'a demandé d'ailleurs ... lol)
A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…