MFC chevauchement plages horaires

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Kiriko

XLDnaute Occasionnel
Bonjour à tous,
Dans le fichier joint, on considère, par ligne, 4 plages horaires différentes (D:E), (F:G), (H:I) et (J:K). Je cherche des MFC (ou autre système?) qui signalerait en rouge tout "chevauchement" eventuel de plage horaire (sur la même ligne, mais entre n'importe laquelle de chacune des 4 plages). Un exemple "à la main" ligne 6.
Les formats horaires sont [hh]:mm.
Des MFC sont déjà présentes qui valident que les heures de fin soient bien après les heures de début (plage par plage)
J'ai des colonnes masquées qui me servent à d'autres choses mais non utiles pour l'exemple.
En espérant avoir été clair.
Merci par avance !

édit : modif de l'exemple
 

Pièces jointes

Dernière édition:
Re : MFC chevauchement plages horaires

Re,

Si l'on craint des inversions d'heures on peut les signaler par cette condition (verte) de la MFC :

Code:
=DECALER(D1;;MOD(COLONNES($D1:D1);2)-1)/DECALER(D1;;MOD(COLONNES($D1:D1);2))>1
Elle doit être prioritaire par rapport à l'autre condition.

Fichier (6).

A+
 

Pièces jointes

Le Forum,
Bonjour Job75,
Mon vrai fichier devra traiter le pavé [B9:F100]

En colonne B : les jours sont déjà rangés dans l'ordre croissant, en premier ordre
En colonne F : l'horaire du style 10:30 - 15:30
La colonne F est aussi déjà rangée en deuxième ordre, en croissant

Seules les colonnes B et F se coloriseraient :
- en rouge pour de la vraie bilocation, ou du chevauchement total sur un des horaires
- en orange pour du chevauchement partiel
 
Dernière édition:
Vous ne répondez pas aux questions de mon post #25.

Alors débrouillez-vous avec cette fonction :
VB:
Function MFC(dat As Range, deb#, fin#) As String
Dim c As Range, d, f
deb = Round(deb, 6): fin = Round(fin, 6)
For Each c In dat.Parent.Range("A6:A180") 'à adapter
    If c = dat And c.Row <> dat.Row Then
        d = Round(c(1, 2), 6): f = Round(c(1, 3), 6)
        If d <= deb And f >= fin Then MFC = "R": Exit Function
        If d >= deb And d <= fin Or f >= deb And f <= fin Then MFC = "O"
    End If
Next c
End Function
 

Pièces jointes

Le Forum,
Bonsoir JOB75,
Merci pour votre dernière fonction que je vais essayer d'adapter à mon fichier.

Ayant été fort mandaté pour couper à l'égoïne et à la pince coupante un vieux pommier, j'ai complètement shunté votre #25.

Dans ma vraie application je vais essayer de :
1- mettre, par exemple en Rouge, les cellules consécutives qui ont un jour identique dans la colonne B et celles de la colonne F ( heure début - heure fin identiques, exemple 09:00 - 11:00) qui ont une "bilocation parfaite" (le même jour + le même horaire) et aussi quand la cellule précédente englobe totalement l'horaire de la cellule suivante ce jour-là, ainsi que lorsque la cellule précédente est englobée totalement par la plage horaire de la cellule suivante, toujours ce jour-là pour les deux cellules analysées.

2 - quant aux chevauchements partiels, en début, ou à la fin des horaires de deux cellules consécutives, la coloration dans colonne B et colonne F passerait en couleur Orange par exemple.

Merci pour votre réponse #27.
Webperegrino
 
Bon si l'on veut que la plage "englobante" soit aussi colorée en rouge :
VB:
Function MFC(dat As Range, deb#, fin#) As String
Dim c As Range, d, f
deb = Round(deb, 6): fin = Round(fin, 6)
For Each c In dat.Parent.Range("A6:A180") 'à adapter
    If c = dat And c.Row <> dat.Row Then
        d = Round(c(1, 2), 6): f = Round(c(1, 3), 6)
        If d <= deb And f >= fin Or d >= deb And f <= fin Then MFC = "R": Exit Function
        If d >= deb And d <= fin Or f >= deb And f <= fin Then MFC = "O"
    End If
Next c
End Function
 

Pièces jointes

Je ne suis pas très loin de trouver avec dans la colonne F9:F180 :
=ET(B10=B9;$B$10<>"")*(LIGNE()>1)*(ET(F10=F9;F10<>"";F10=F9))+(LIGNE()>1)*(ET(F9=F10;F10<>"";F9=F10))
J'ai dû louper quelque chose.
Je regarde ensuite le fichier que vous avez mis en #29...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour