Problème dans une formule sur un planning

Résolu
Bonjour,

J'aurai besoin dun peux d'aide sur un planning que j'avais mis au point
Suite à de nombreuses modifications, je viens de le passer à l'heure mais je bloque
Pouvez-vous me proposer une solution
Merci par avances

Le fichier en PJ

https://cjoint.com/c/KIqsaP0GwX4

Configuration: Windows / Edge 93.0.961.47


--
C'est en forgeant que l'on devient forgeron. -   C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs

38 réponses

Résumé de la discussion

La problématique porte sur la mise au point d’un planning après modifications et sur une difficulté à le mettre à l’heure, avec un fichier joint et une configuration Windows/Edge. Les échanges centrent leurs propositions autour de la macro VBA Insertion_Bloc_Monteur et de l’adaptation de la MFC, avec des mentions de révisions du code, du module2 et d’instructions manquantes. D'autres interventions évoquent des ajustements de l’ordre de tri des monteurs et zones, la vérification des dates M13 et l’ajout de blocs via une commande Ajouter bloc, accompagnée de mises à jour des règles. Si besoin, plusieurs éléments techniques pourraient nécessiter une remise au propre, notamment la suppression du mélange des règles MFC et la confirmation d’un nouvel ordre zone/monteur après sauvegarde.

Bobot (l’IA à votre service)
  1. Bonjour,
    Je n’ai pas bien compris le problème, toutefois dans la ligne 5 où vous avez le numéro du jour, j’ai remarqué ceci : le 1 pour lundi et pour le prochain lundi vous avez le 2 !

    0
    1. Re bonsoir,
      Question: pourquoi systématiquement le jeudi n’a que 4 heures au lieu de 8 et le vendredi 1 heure au lieu de 4 heures … ?
      0
      1. Contributeur
        Bonjour Le Pingou

        Merci de me venir en aide
        C'est là un de mes problèmes ce décalage que pour le moment je ne comprends pas
        Si je fais =JOURSEM(N6;2) colonne N le numéro de jour est bon
        Si j'utilise JOURSEM(M6+1;2) il y a des soucis pourtant le numéro de série du jour précédent +1 devrait donner le même résultat ? (cette formule pour éviter les calculs circulaires)
        Peut que mon raisonnement n' est pas logique, je me casse la tête avec ça
        Je teste les jours fériés et je mets la date du jour à 18:00 fin de journée
        Je teste les samedis et dimanches et je fais la même chose date et 18:00 (j'ai décomposé suite au problème au début je faisais un SI(OU(...)
        Après je teste heure de début heure de fin de journée pour incrémenter les heures du jour 8:00 à 15:00
        Puis si c'est faux je passe au jour suivant à 8:00

        Avez-vous une autre idée MERCI
        0
    2. Bonjour,
      J'ai trouvé une première correction pour la cassure du jeudi, dans la partie (SI(ET...)) la formule j'ai supprimé le [+1] pour la plage horaire:


      Note : reste encore le problème pour le vendredi... pas encore trouvé!
      0
      1. Contributeur
        Bonjour Le Pingou

        J'ai décomposé la formule

        =SI(ET(M$6+M$1-ENT(M$6)>=RECHERCHEV(JOURSEM(M$6;2);Horaire_hebdo;2;0);M$6+M$1-ENT(M$6)<=RECHERCHEV(JOURSEM(M$6;2);Horaire_hebdo;3;0));M$6+1+M$1;ENT(M6)+1+1/24*8)

        Cela ne fonctionne pas comme il faut problème le vendredi 12:00 au lieu de 11:00
        Le lundi début 9:00 au lieu de 8:00

        Merci pour ton aide
        0
        1. Bonjour,
          Il y a aussi des valeurs [=1/24] qui manque dans ligne 1 !
          Il me reste le problème du vendredi qui reste sur une cellule au lieu de 4 (pour 4 heures de travaux)..
          Et aussi si un jour férié tombe entre les jours ouvrables (ma,mer et je)

          0
          1. Contributeur
            Oui pour la ligne1 la formule

            =SI(OU(NB.SI(fériés;ENT(BM6))>0;JOURSEM(BM6;2)>5);0;1/24)

            pour moi jeudi 4:00 au lieu de 8:00
            vendredi 8:00 uniquement
            0
        2. Contributeur
          Bon il me reste plus que le vendredi qui ne fonctionne pas, voici ma formule

          =SI(NB.SI(fériés;ENT(Q$6)+1)>0;ENT(Q$6)+1+1/24*18;SI(JOURSEM(ENT(Q$6)+1;2)>=6;ENT(Q$6)+1+1/24*18;SI(ET(Q$6+Q$1-ENT(Q$6)>=RECHERCHEV(JOURSEM(ENT(Q6);2);Horaire_hebdo;2;0);Q$6+Q$1-ENT(Q$6)<=RECHERCHEV(JOURSEM(ENT(Q6);2);Horaire_hebdo;3;0));SI(Q$1=0;ENT(Q$6)+1/24*8;Q$6+Q$1);ENT(Q$6)+1+1/24*8)))
          0
          1. Bonjour,
            J'ai encore un moment cette après-midi, j'espère trouver la solution.
            0
            1. Contributeur
              Je regarde la possibilité de contrôler l'heure avant le test heure début / fin
              Je reprendrai plus tard je dois absenter
              0
          2. Bonjour,
            Avec le premier bloc ; problème avec heures du vendredi et avec jours fériés sur jours ouvrables
            Dans le deuxième bloc; problème avec les jours fériés dans plage lundi-vendredi !
            Je fais une longue pause.
            Le fichier: https://www.cjoint.com/c/KIrp3EY6JKn
            0
            1. Contributeur
              Bonsoir Le Pingou

              Mon fichier avec mes problémes
              Je vais étudier tes solutions pour voir si j'arrive à une solution
              C'est vraiment bizarre le comportement de cette formule elle n'est pas Constante

              https://www.cjoint.com/c/KIrsy1zUbb4

              Merci
              0
              1. Contributeur
                Bonjour Le Pingou

                Oui ça avance mais encore un souci

                '=SI(ET(fériés;ENT(N$6)>0;JOURSEM(N$6;2)>=6);SI(ET(NB.SI(fériés;ENT(N$6+1))=0;JOURSEM(N$6;2)=7);ENT(N$6)+1+1/24*8;ENT(N$6)+1+1/24*18);SI(ET(N$6+N$1-ENT(N$6)>=RECHERCHEV(JOURSEM(ENT(N$6);2);Horaire_hebdo;2;0);N$6+N$1-ENT(N$6)<=RECHERCHEV(JOURSEM(ENT(N6);2);Horaire_hebdo;3;0));SI($M$1=0;ENT(N$6)+1/24*8;N$6+N$1);SI(NB.SI(fériés;ENT(N$6)+1);ENT(N$6)+1+1/24*18;ENT(N$6)+1+1/24*8)))

                Devrait être N1 pas M1

                Merci je regarde les différentes versions
                0
                1. Bonjour,
                  Mes formules qui fonctionnent selon ma plage (M10:GL13)
                  Note: la première date [M13] est la date du début mentionnée en [L13] et non pas la suivante comme votre modèle..!
                  formule premier jour en [M13]:
                  =SI(ET(fériés;ENT(L$13)>0;JOURSEM(L$13;2)>=6);ENT(L$13)+0+1/24*18;ENT(L$13)+0+1/24*8)

                  formule dès colonne [N13...] a tirer jusqu'à [GL13]:
                  =SI(ET(fériés;ENT(M$13)>0;JOURSEM(M$13;2)>=6);SI(ET(NB.SI(fériés;ENT(M$13+1))=0;JOURSEM(M$13;2)=7);ENT(M$13)+1+1/24*8;ENT(M$13)+1+1/24*18);SI(ET(M$13+M$10-ENT(M$13)>=RECHERCHEV(JOURSEM(ENT(M$13);2);Horaire_hebdo;2;0);M$13+P$1-ENT(M$13)<=RECHERCHEV(JOURSEM(ENT(M$13);2);Horaire_hebdo;3;0));SI(M$10=0;ENT(M$13)+1/24*8;M$13+M$10);SI(NB.SI(fériés;ENT(M$13)+1);ENT(M$13)+1+1/24*18;ENT(M$13)+1+1/24*8)))

                  Pour moi tout marche sans faute.
                  0
                  1. Contributeur
                    Bonsoir Le Pingou

                    Pouvez-vous n'envoyer votre fichier ?
                    Lorsque je colle les formules en M13 et N13 le résultat n'est pas bon
                    En plus on test 2 fois mais il manque NB.SI devant féries
                    =SI(ET(fériés;ENT(M$13)>0;JOURSEM(M$13;2)>=6);SI(ET(NB.SI(fériés;ENT(M$13+1))=0;

                    Tout cela n'est pas encore claire
                    Merci de votre participation mais le problème est ardu.
                    0
                    1. Bonsoir,
                      Vous faite bien attention à :Note: la première date [M13] est la date du début mentionnée en [L13] et non pas la suivante comme votre modèle..!

                      le voici (le même que sous poste 15, juste modifier le nom): https://cjoint.com/c/KIstQYaBBmn

                      1
                      1. Bonsoir,
                        Eh bien je viens de transférer mes formules dans votre plage de planification (M6:GL6) et ton fonctionne correctement .
                        1
                        1. Contributeur
                          Bonjour Le Pingou

                          Voilà avec beaucoup d'aide de ta part. Le fichier est opérationnel, j'ai modifié ta formule pour plus de précision et le raisonnement me convient mieux
                          Merci Pour toutes ton aide à plusieurs on a plus d'idées

                          https://cjoint.com/c/KItjqanI2N4

                          Pouvez-vous regarder pour automatiser en VBA l'insertion de monteurs supplémentaires (un bloc de 31 lignes séparation comprise

                          Merci

                          0
                          1. Bonjour,
                            Merci, content de savoir que cette fois c'est bon.
                            Je vais volontiers me pencher sur cette insertion de bloc monteur, mais pas de suite... Dès lundi/mardi prochain.
                            Bon dimanche.

                            1
                            1. Bonjour PHILOU10120,
                              Je suis enfin sur votre demande. J’ai assimilé vos ordres de trie et j’ai des questions :
                              1.- Les plages nommées pour les monteurs 9 et 10 sont croisées. Si vous cliquer sur 9 cela trie le 10 et inversement.
                              2.- Vous avez pour chaque monteur 2 plages nommées [zone_trie_monteur3] sur colonne [=Planning!$A$71:$A$100] et[trie_monteur3] sur colonne[=Planning!$A$71:$D$100].
                              En principe seul la zone de trie est nécessaire et pour on utilise pour la colonne de trie cette instruction : [Key:=Columns(1)]
                              3.- Pour la commande de trei vous avez utilisé un cotr^le de formulaire, il est possible que se soit préférable d’utiliser un contrôle ActiveX…à voir !
                              Bon dimanche

                              0
                              1. Contributeur
                                Bonjour Le Pingou

                                Pour chaque monteur, je sélectionne la zone de trois colonnes et je trie sur la colonne A pour organiser l'ordre de passage suivant les urgences.

                                Pour les zones j'ai modifié l' ordre zone tri monteur10 devient 9 et la zone tri monteur 9 devient 10
                                c'était une erreur de part
                                0
                            • 1
                            • 2

                            Discussions similaires

                            exo pix

                            2 réponses