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

Power Query Extraire les dates de début et de fin avec Power Query

Kaka133

XLDnaute Nouveau
Merci de m’aider à trouver la solution de Extraire les dates de début et de fin avec Power Query voir l’exemple suivant :



Merci d’avance
 

Pièces jointes

  • DATA Résultat.xlsx
    10.6 KB · Affichages: 17

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,
Bonjour @chris

J'avais fait çà ce matin, puis avait pensé que vous aviez trouvé la solution dans l'autre post alors je ne l'ai pas posté.

La requête, plutôt que de faire un test sur le matricule, le type d'absence et la date, regroupe les données sur matricule et type d'absence puis traite chacun des groupes résultants.

Cordialement
 

Pièces jointes

  • DATA Résultat.xlsx
    28.6 KB · Affichages: 16

job75

XLDnaute Barbatruc
Bonsoir Kaka133, chris, Roblochon, Amilo,

En VBA ce n'est pas bien difficile :
VB:
Sub Regrouper()
Dim tablo, resu(), i&, n&, j%
With Feuil1 'CodeName
    With .[A1].CurrentRegion.Resize(, 5)
        .Sort .Cells(1), xlAscending, .Cells(1, 3), , xlAscending, .Cells(1, 4), xlAscending, Header:=xlYes
        tablo = .Value2
    End With
    ReDim resu(1 To UBound(tablo), 1 To 6)
    For i = 2 To UBound(tablo)
        If tablo(i, 1) & tablo(i, 3) <> tablo(i - 1, 1) & tablo(i - 1, 3) Or tablo(i, 4) <> Val(tablo(i - 1, 4)) + 1 Then
            n = n + 1
            For j = 1 To 4: resu(n, j) = tablo(i, j): Next
        End If
        resu(n, 5) = tablo(i, 4)
        resu(n, 6) = Val(resu(n, 5)) - Val(resu(n, 4)) + 1
    Next
    '---restitution---
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[G2] '1ère cellule de destination, à adapter
        If n Then .Resize(n, 6) = resu
        .Offset(n).Resize(Rows.Count - n - .Row + 1, 6).ClearContents 'RAZ en dessous
    End With
End With
End Sub
A+
 

Pièces jointes

  • Regrouper(1).xlsm
    18.9 KB · Affichages: 4

chris

XLDnaute Barbatruc
RE à tous

Seules les solutions de Roblochon et de job75 fonctionnent dans tous les cas

Contrairement à ce que je fais habituellement et qui est mentionné dans le lien donné, dans ma solution de l'autre fil, je n'ai comparé, que les dates de la ligne suivante
Idem dans le solution Amilo.
Cela n'est pas bon dès que des congès de personnes différentes se suivent.
De plus Amilo ne fait pas de tri avant indexation ce qui ajoute au PB

@kaka 133 : il faudrait préciser quelle version d'Excel tu utilises et sur quelle étape de la requête tu rencontres le problème. Je suppose que ta version est inférieure à 365 et que c'est l'indexation qui pose problème mais précise bien ces 2 infos.
 
Dernière édition:

Kaka133

XLDnaute Nouveau
office 2016
 

Kaka133

XLDnaute Nouveau
un grand merci pour votre précieux soutien
 

Amilo

XLDnaute Accro
Re,
Bonsoir job75,

Exact @Christ, voici une petite modification avec une version 2,
Je n'ai pas cherché à peaufiner ou à simplifier davantage la requête


Cordialement
 

Pièces jointes

  • DATA Résultat_PQ2.xlsx
    21.7 KB · Affichages: 7

Discussions similaires

Réponses
8
Affichages
358
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…