Chevauchements plages horaires

Bonjour à tous,

Je m'adresse à vous car cela trop longtemps que je "galère" sur un problème qui maintenant devient urgent.

Je cherche à repérer des chevauchements de plages horaires, à une date précise, entre des données (matières) qui ont un code commun.

Plus précisément : 2 matières, avec un code commun d'incompatibilité, ne doivent pas être positionnées sur des créneaux horaires qui se chevauchent.

Je joins un fichier excel pour être plus explicite.

Dans ce fichier, j'ai mis en gras la situation qui pose problème et en colonne G (Alerte), le résultat que je cherche à avoir (faire apparaître les codes des matières incompatibles).

Je vous remercie d'avance pour votre aide.

D@vid

36incomp.xlsx (8.85 Ko)

Bonjour,

Sous forme de fonction personnalisée :

Function INCOMPAT(base As Range, refmat As String) As String
    Dim n%, i%, mat$, incomp$, d, hd, hf
    Application.Volatile
    With base
        For i = 1 To .Rows.Count
            If .Cells(i, 2) = refmat Then n = i: Exit For
        Next i
        incomp = .Cells(n, 1): d = .Cells(n, 4)
        hd = .Cells(n, 5): hf = .Cells(n, 6)
        For i = 1 To .Rows.Count
            If i = n Then GoTo NoTst
            If .Cells(i, 1) = incomp And .Cells(i, 4) = d Then
                If .Cells(i, 5) < hf And .Cells(i, 6) > hd Then
                    mat = mat & " " & .Cells(i, 2)
                End If
            End If
NoTst:
        Next i
        INCOMPAT = Trim(mat)
    End With
End Function

S'utilise comme les fonctions d'Excel (j'ai placé la formule en colonne H)

=INCOMPAT($A$2:$F$8;$B2)

Tu remarqueras que la fonction fait disparaître une de tes signalisations faite manuellement à tort...

Le code de la fonction est en Module1.

Cordialement.

Rechercher des sujets similaires à "chevauchements plages horaires"