MFC chevauchement plages horaires

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

  • MFC chevauchement plages horaire.xlsx
    28.6 KB · Affichages: 45
Dernière édition:

job75

XLDnaute Barbatruc
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

  • MFC chevauchement plages horaires(6).xls
    79 KB · Affichages: 47

Webperegrino

XLDnaute Impliqué
Supporter XLD
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:

job75

XLDnaute Barbatruc
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

  • Chevauchement plages horaires(7).xlsm
    35 KB · Affichages: 1

Webperegrino

XLDnaute Impliqué
Supporter XLD
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
 

job75

XLDnaute Barbatruc
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

  • Chevauchement plages horaires(8).xlsm
    34.8 KB · Affichages: 4

Discussions similaires

Réponses
22
Affichages
963
Réponses
49
Affichages
992

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 636
Messages
2 111 460
Membres
111 151
dernier inscrit
KARIMTAPSO