Chevauchements plages horaires

Y compris Power BI, Power Query et toute autre question en lien avec Excel
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é 18 fois
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'194
Appréciations reçues : 446
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é 13 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message