Fonction complexe, calcul en fonction de date

Bonjour,

Je suis de nouveau bloquée et j'aurai besoin de votre aide.

Vous trouverez ci joint mon tableau.

Ce tableau récapitule les absences santé, ce que je souhaiterais faire c'est avoir le nombre d'arrêt en fonction de la durée totale de l'absence.

C'est à dire qu'un arrêt qui est prolongé (donc les dates se suivent) est considéré comme un seul arrêt.

Un arrêt est consécutif lorsque les dates se suivent, concerne la même personne et que le motif d'absence soit identiques (je n'ai pas réussi à intégrer un critère supplémentaire)

J'ai essayé avec une formule mais cela ne me convient pas.

J'aimerai compléter le tableau sur le fichier qui indique le nombre d'arrêt en fonction de la durée...

Pourriez-vous m'aider à compléter les éléments manquants (en jaune) ?

D'avance, merci.

22test.zip (5.44 Ko)

Re-bonjour,

J'ai également oublié de préciser que les lignes ne sont pas forcément dans l'ordre alphabétique et chronologique...

Si cette variable pouvait être prise en compte, ca serait top.

Merci bcp.

Bonjour,

Personne pour m'aider ?

Merci et bonne journée.

Bonjour,

solution via une macro

Sub aargh()
    With Sheets("feuil1")
        .Columns(1).Insert shift:=xlToRight
        dl = .Cells(1, 2).End(xlDown).Row
        For i = 1 To dl
            .Cells(i, 1) = i
        Next i
        .Range("H2:H" & dl).ClearContents
        .Range("A1:I" & dl).Sort key1:=.Range("B1"), order1:=xlAscending, key2:=.Range("C1"), order2:=xlAscending, Header:=xlYes
        cle = ""
        ldate = 0
        For i = 2 To dl + 1
            If .Cells(i, "B") & .Cells(i, "G") <> cle Or ldate + 1 <> .Cells(i, "C") Then
                If cle <> "" Then
                    .Cells(i - 1, "H") = jc
                End If
                jc = .Cells(i, "F")
                cle = .Cells(i, "B") & .Cells(i, "G")
                ldate = .Cells(i, "D")
            ElseIf ldate + 1 = .Cells(i, "C") Then
                jc = jc + .Cells(i, "F")
                ldate = .Cells(i, "D")
            End If
        Next i
        .Range("A1:I" & dl).Sort key1:=.Range("A1"), order1:=xlAscending, Header:=xlNo
        .Columns(1).Delete shift:=xlLeft
    End With
End Sub

Merci je vais essayer.

Bonne soirée

Rechercher des sujets similaires à "fonction complexe calcul date"