Microsoft 365 MFC

Moreno076

XLDnaute Impliqué
Bonsoir à tous.

Je voudrais adapter la MFC du tableau ci-joint mais je n'y arrive pas.

Je voudrais que les MFC soit du même type que celle du lundi AM (bleu). Pour la formule la plage est c1 c18. Si je remplace par c9 car commence reellement à c9 ca ne fonctionne pas si je remplace tous les c1 par c9.

je rentre les horaires dans Y19 et Y20 et la MFC s'applique.

Je n'arrive pas à reproduire la formule et je comprend pas ce qu'il faut faire pour appliquer une MFC. Je souhaiterais que ca se reproduise d'une part le lundi matin.

Ensuite il y a une plage créer l'apres midi et j'ai besoin d'en créer une deuxieme qui deborde sur deux jours. Par exemple de 16h à 11h30. Deux plages ne se superposeront jamais.

Merci pour votre aide
 

Pièces jointes

  • EFFECTIF LOG.xlsm
    34.8 KB · Affichages: 14
Solution
Je ne sais pas si ça se voit, mais pour les deux premières MFC j'ai utilisé la couleur du lundi, pour les deux MFC suivantes j'ai utilisé la couleur du mardi, etc.

Et j'ai utilisé la même mise en forme (mais non conditionnelle) pour encadrer les petits tableaux (colonnes X à AE), que la MFC correspondante (par exemple hachures bleues vers la droite pour la première MFC).

Dudu2

XLDnaute Barbatruc
Bonjour,
Pour la MFC bleue existante...
- la plage est : =$C$18:$V$36
- la formule est : =ET($C18>=$Y$18;$D18<=$Y$19)
Explique la plage et la formule de la MFC que tu veux créer (modifier ?) car je ne comprends pas tes remplacements de C1 par C9 vu qu'il n'y a pas de C1.
D'ailleurs pourquoi C9 puisque les horaires commencent en C8 ?
 

TooFatBoy

XLDnaute Barbatruc
je rentre les horaires dans Y19 et Y20 et la MFC s'applique.
C'est normal puisque dans la MFC les comparaisons des horaires se font par rapport à ces deux cellules. ;)
Pour les autres MFC, il faut donc remplacer $Y$19 et $Y$20 par les cellules correspondantes, c'est-à-dire $Y$8 et $Y$9 pour le lundi matin ou $Y$37 et $Y$38 pour le mardi après-midi, par exemple.

Pour rappel, au cas où ;) : le $ sert à "figer" une colonne ou une ligne.
Si tu as Y19 dans la formule d'une cellule et que tu copies cette cellule ailleurs, ça décalera automatiquement le "Y19" d'autant.
En revanche, si tu as $Y19, quand tu vas recopier la cellule contenant la formule, seul le numéro de ligne changera ; le "Y" restera "Y".
Si tu as Y$19, alors c'est le numéro de ligne qui restera fixe (toujours "19").


Pour lundi matin, tu sélectionnes la cellule en haut à gauche de ta plage à laquelle appliquer la MFC, puis tu entres la MFC.
La condition sera
=ET($C8>=$Y$8;$D8<=$Y$9)
et elle s'appliquera à
=$C$8:$V$17
 

TooFatBoy

XLDnaute Barbatruc
Re, ;)

Les horaires à cheval sur deux jours, ce n'est jamais très simple à gérer (du mois pour moi), donc j'ai quelque peu modifié ta feuille... :(

1- A la place de "Lundi", "Mardi", etc. j'ai mis la date du lundi, la date du mardi, etc. et j'ai fait afficher le jour et la date (on peut modifier l'affichage).
Autrement dit, la cellule ne contient plus du texte, mais elle contient maintenant une date (qui est utilisée pour effectuer des calculs).

2- A la place de l'heure (par exemple 07:45:00 contenue dans une cellule et affichage 7:45), j'ai mis la date et l'heure (09/03/2020 07:45:00 en gardant le même affichage qu'avant 7:45). La date en question est prise dans la colonne B, d'où la modification apportée à la colonne B (voir explication 1- ci-dessus).
C'est valable pour les colonnes C et D.

3- Pour simplifier les calculs des MFC, aux heures de début et de fin, j'ai ajouté une date de début et une date de fin.
C'est un peu plus lourd pour l'utilisateur, mais c'est infiniment plus simple pour les MFC.

4- Pour les dates de début et de fin, j'ai mis une liste déroulante, pour être sûr de ne pas se tromper dans les dates.
J'ai aussi mis une coloration automatique en fonction du jour sélectionné (on peut bien sûr supprimer ça si ça t'embête).

5- J'ai prévu 8 MFC qui s'appliquent chacune sur l'ensemble du tableau.
On peut bien sûr en ajouter ou en supprimer si tu veux.
 

Pièces jointes

  • EFFECTIF LOG (2).xlsm
    42.1 KB · Affichages: 5
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour à tous,

A mon avis utiliser une MFC n'est pas la meilleure idée.

Il vaut mieux (fichier joint) appliquer des bordures colorées avec cette macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [Y:Y]) Is Nothing Then Exit Sub
Dim i&, c As Range, deb&
Application.ScreenUpdating = False
'---RAZ---
For i = 9 To 104 Step 19
    With Cells(i, 3).Resize(IIf(i = 104, 9, 19), 20)
        .Borders.Weight = xlThin
        .Borders.ColorIndex = xlAutomatic
        .Borders(xlEdgeTop).Weight = xlMedium
        .Borders(xlEdgeBottom).Weight = xlMedium
        If i < 104 Then .Rows(10).Borders(xlEdgeBottom).Weight = xlMedium
    End With
Next i
If Application.Count([Y:Y]) = 0 Then Exit Sub
'---bordures épaisses colorées---
For Each c In [Y:Y].SpecialCells(xlCellTypeConstants, 1)
    deb = c.Row - IIf(c(1, 0) Like "*fin", 1, 0)
    For i = deb To deb + 18
        If Cells(i, IIf(c(1, 0) Like "*fin", 4, 3)) >= c Then
            With Cells(i, 3).Resize(, 20).Borders(IIf(c(1, 0) Like "*fin", xlEdgeBottom, xlEdgeTop))
                .Weight = xlThick
                .ColorIndex = 3 'rouge
            End With
            Exit For
        End If
Next i, c
End Sub
A+
 

Pièces jointes

  • MATRICE EFFECTIF LOG(1).xlsm
    38.5 KB · Affichages: 5
Dernière édition:

Moreno076

XLDnaute Impliqué
Bonjour à tous
J'ai pris le temps de lire et de voir et tester vos tableaux.
Résultat exceptionnel pour Marcel32 merci à toi.
Je vais privilégier plutôt les MFC que les VBA, je pense être + à l'aise avec.

J'ai mis mon tableau à jour jusqu'au samedi.

Me reste les formule de balance à mettre.

Merci Marcel 32.
 

Pièces jointes

  • EFFECTIF LOG Marcel32.xlsm
    43.9 KB · Affichages: 2

Moreno076

XLDnaute Impliqué
Du coup je n'arrive pas à mettre la formule dans balance.

La balance est la somme des heures dispo dans la colonne H (selon tranche horaire AA9 AA10 - - somme des heures TF dans la colonne H selon meme tranche horaire) - besoin activité AA12

=SOMME(INDIRECT("H"&EQUIV(AA9;C8:C17;0)):INDIRECT("H"&EQUIV(AA10;D8:D17;0)))-SOMME(INDIRECT("G"&EQUIV(AA9;C8:C17;0)):INDIRECT("G"&EQUIV(AA10;D8:D17;0)))-AA12

Merci
 

Pièces jointes

  • EFFECTIF LOG Marcel32.xlsm
    43.9 KB · Affichages: 2

TooFatBoy

XLDnaute Barbatruc
Marcel32 merci à toi.
Merci. ;)

Tu ne le sais peut-être pas, mais Job75 est au moins 1 000 000 de fois meilleur que moi en ce qui concerne Excel (moi je bidouille pendant des jours jusqu'à ce que ça fonctionne à peu près, lui il maîtrise à fond et te pond un programme hyper opérationnel en quelques heures à peine), donc sa réponse est à prendre en compte très sérieusement.

Je vais tout de même regarder ta balance bien sûr.
 

TooFatBoy

XLDnaute Barbatruc
Formule à mettre en AA13 :
=SOMME(INDIRECT("H"&EQUIV(Z9+AA9;C:C;0)):INDIRECT("H" &EQUIV(Z10+AA10;D: D;0)))
-SOMME(INDIRECT("G"&EQUIV(Z9+AA9;C:C;0)):INDIRECT("G" &EQUIV(Z10+AA10;D: D;0)))
-AA12
(formule à remettre en forme : supprimer les sauts à la ligne et supprimer les espaces devant les D)

En suite, copier la cellule AA13 et faire un collage spécial pour ne coller que la formule pour les autres balances (AA23, AA31, etc.).


Autre formule possible :
=SOMME.SI.ENS(H:H;C:C;">="& (Z9+AA9);D: D;"<=" & (Z10+AA10))
-SOMME.SI.ENS(G:G;C:C;">="& (Z9+AA9);D: D;"<=" & (Z10+AA10))
-AA12
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
586

Statistiques des forums

Discussions
312 673
Messages
2 090 778
Membres
104 664
dernier inscrit
jth