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
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.