Chevauchements plages horaires

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
D
DavidPatrice
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 19 juin 2018
Version d'Excel : 2013 FR

Message par DavidPatrice » 19 juin 2018, 09:05

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
Incomp.xlsx
(8.85 Kio) Téléchargé 20 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 19 juin 2018, 10:39

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.
davidpatrice_Incomp.xlsm
(15.52 Kio) Téléchargé 16 fois
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message