XL 2010 Détecter les périodes de <44 h. libres pendant 7 jours

CISCO

XLDnaute Barbatruc
Bonsoir

Que faut-il afficher sur les lignes 45 et 46 : On ne prend pas en cause la pause de 12 à 13 h ?

@ plus
 

Aloha

XLDnaute Accro
Bonjour,
Tu veux dire pour compter les 44 heures?
Dans la pratique ces pauses de midi lors d'une formation (F) peuvent être ignorées. Seulement, techniquement, est-il possible de les ignorer puisque c'est un début de temps libre, même s'il ne dure qu'une heure. Si elles ne sont pas comptées, alors il faut définir à partir de combien d'heures entre 1 h et 44 h le temps libre est compté.
N'est-il pas plus facile de les compter pour éviter cette tâche supplémentaire?
Bon dimanche
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

Cf. en pièce jointe où j'en suis pour le moment, pour prendre correctement en compte les 1/2 h signalées par des / (ou des XP).
J'ai changé les formules dans les colonnes AA, AB et AD. Est-ce que tu pourrais regarder si cela semble te donner les bons résultats (uniquement dans les colonnes AA à AD), sans utiliser pour le moment la macro, mais en mettant d'autres situations, d'autres enchainements possibles ?

J'ai un peu modifié la définition de certains noms. Il y a certainement trop de noms dans ce gestionnaire de noms. J'essayerai d'y faire du nettoyage plus tard.

Pour ce qui est des "petites pauses", je ne sais... Je vais y réfléchir.

@ plus
 

Fichiers joints

Dernière édition:

Aloha

XLDnaute Accro
Bonsoir,
Pour l'instant je suis totalement bloqué par le refus de ma macro de copier les données des vieilles fiches mensuelles dans les nouvelles. Après je copie les données des nouvelles mensuelles dans les annuelles.
Je dois d'abord résoudre ce problème avant de pouvoir continuer avec les annuelles.
A+
Aloha
 
Dernière édition:

Aloha

XLDnaute Accro
Bonsoir,
Je suis en train de copier les saisies de janvier dans ton dernier fichier. Pour 120 salariés de 10 services cela dure 80 minutes.
Comme il me semble que cette lenteur est due pour une bonne partie au fait que dans les fichiers mensuels les cellules sont fusionnées verticalement deux par deux et que la macro doit d'abord lever cette fusion cellule par cellule, et trier les données pour éliminer les lignes vides avant de copier les saisies, je me suis demandé combien ce serait onéreux, côté formules, de reproduire les mêmes fusions de cellules dans le fichier annuel, ce qui signifierait qu'il y aurait des formules dans une ligne sur deux seulement.
Qu'en penses-tu?
Bonne nuit
Aloha
 
Dernière édition:

Aloha

XLDnaute Accro
Bonjour,
J'avais espéré que la copie des saisies mensuelles pour février serait plus rapide que celle de janvier, parce que les fiches sont déjà existantes, mais il n'en était rien.
Malheureusement il y a un petit problème dans la colonne AB.
Le problème apparaît lorsqu'il y a des saisies le 1.1.
Si, p.ex., je mets un X pour le salarié 1 le 1.1., le problème apparaît, non seulement pour le 1.1., mais aussi pour le 3.1.; sans ce X il disparaît dans les deux cellules.
Je suis vraiment désolé.
A+
Aloha
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Bonjour

Le dernier problème que tu signales, dans AB16, vient de la partie de la formule SI(AB14="";0;ARRONDI.SUP(AB14;0)))) sur la 4ème ligne dans la barre des formules :
1) Comme AB14 contient du texte, ARRONDI.SUP(AB14;0) renvoie #VALEUR si la ligne 16 contient un ou des X correspondant à un temps de travail à prendre en compte.
2) Je ne comprend pas pourquoi, étant en ligne 16, la formule va chercher une valeur en ligne 14 et pas en ligne 15, comme cela devrait le faire, il me semble. C'est le cas dans toute cette colonne : en ligne x, la formule utilise une valeur provenant de la ligne x - 2, alors que c'est celle de la ligne x - 1 qui nous intéresse, si mes souvenirs sont bons. C'est aussi le cas dans ma dernière pièce jointe. Cela vient peut-être du fait que les cellules AB14 et AB15 sont fusionnées... J'ai peut être fait un copier-coller malheureux qui a propagé cette erreur en dessous de la ligne 16.

J'essaye de comprendre s'il faut travailler avec la valeur de la ligne x - 1 ou de la ligne x - 2 avant de corriger tout cela.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Rebonjour

J'ai trouvé d'autres cas posant problème. Dans la foulée, j'essaye de simplifier les formules des colonnes AA et AB. Pas évident de bien prendre en charge tous les cas possibles.

@ plus
 

Aloha

XLDnaute Accro
Re,
Je suis vraiment navré, mais j'ai détecté une autre irrégularité: le 28 février, alors que les 7 jours ne sont pas encore complets (ils le seront seulement le 3 mars), la formule dans AH75 du salarié 4 met déjà un chiffre 1, alors que 4 jours se sont seulement écoulés et qu'il reste donc 3 jours pour avoir les 44 heures.
A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonjour

Dans le dernier cas que tu signales, c'est plutôt le test initial qui est incomplet : Dans cette cellule, il ne faudrait pas de résultat. C'est assez facile à corriger avec un
Code:
SI((AF75=AF76)+(AF76="");"";(ARRONDI(MAX(DECALER(AG75;-6;;7));10)<ARRONDI((44/24);10))*1)
toujours dans la ligne 75, à tirer vers le haut et vers le bas.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Les résultats pour le salarié 3, dans AA17 et AB17, ne sont pas corrects. On devrait avoir 20 et 9. Les formules actuelles mettent l'heure de début et celle de fin sur la ligne comportant le début en question, même pour les périodes à cheval sur deux jours, ici sur la ligne 16. Mais comme il y a déjà quelque chose dans AA16 et AB16, il y a un problème.

@ plus
 
Dernière édition:

Aloha

XLDnaute Accro
Bonjour,

Entrevois-tu une solution pour ce nouveau problème que tu viens de soulever?
En ce qui concerne le précédent, j'ai corrigé les formules.
Je me suis demandé si elle calculera correctement le 31.12. puisqu'elle renvoie à la cellule de la prochaine ligne, qui est vide. Mais cela ne m'inquiète pas pour l'instant, on en est loin.
Dans cet ordre d'idées, il me semble que, pour terminer l'année correctement il faudra les saisies de début janvier 2019, non?

Bonne journée
Aloha
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonjour

Bonjour

Dans le dernier cas que tu signales, c'est plutôt le test initial qui est incomplet : ...
Code:
SI((AF75=AF76)+(AF76="");"";(ARRONDI(MAX(DECALER(AG75;-6;;7));10)<ARRONDI((44/24);10))*1)

@ plus
J'ai l'impression que ce n'est pas correct dans tous les cas, par ex si tu as bien une dernière période comprenant 7 jours. A contrôler donc.

@ plus
 

Aloha

XLDnaute Accro
Re,
Veux-tu dire par là que la formule modifiée ne fonctionne pas correctement non plus?
A+
Aloha
 

CISCO

XLDnaute Barbatruc
Bonsoir

Re,
Veux-tu dire par là que la formule modifiée ne fonctionne pas correctement non plus?
A+
Aloha
Oui. Elle ne donne pas le bon résultat sur la dernière ligne lorsque la dernière période comprend 7 lignes. Ce n'est qu'un détail... à mon avis, assez facile à corriger. Je regarderai cela plus tard.

@ plus
 

CISCO

XLDnaute Barbatruc
Bonjour

Tout compte fait :
1) Comme j'ai trop de difficultés pour trouver des formules donnant l'heure de début et celle de fin (colonnes AA et AB) en prenant en compte tous les cas possibles, et en écrivant le résultat sur la bonne ligne
2) et comme j'ai remarqué que cela commençait à ramer avec juste 4 onglets
j'ai essayé de rédiger une macro dans la module 1 donnant directement le temps de repos (colonne AE). Cf. en pièce jointe. Pour le moment, il faut effacer la colonne AE à la main entre chaque essai.

Bien sûr, c'est à améliorer (neutralisation de l'affichage pendant les calculs, nettoyage de cette colonne, calcul de la colonne AG, lancement automatique de cette macro, nettoyage du gestionnaire de noms, suppression des colonnes AA et AB peut être...). Jette un œil là-dessus et dis moi si cela te semble une voie possible, si les résultats de la colonne AE sont corrects.

@ plus
 

Fichiers joints

Dernière édition:

Aloha

XLDnaute Accro
Bonjour,
J'ai testé ta macro; elle fonctionne, mais seulement pour une feuille, comme j'ai cvompris, toujours pour la feuille active. Il faut donc aussi l'étendre aux autres feuilles. Je vais essayer si j'y arrive en prenant le code requis dans une autre macro.
Les résultats de la colonne AE sont corrects!
Par contre, dans la cellule AB75 de la feuille Salarié 3 il y a "FAUX" comme résultat, ce qui, si j'ai bien analysé, n'a aucun impact sur le comptage des heures et des cycles. Si je comprends bien ta remarque concernant l'éventuelle suppression des colonnes AA et AB, ce faux résultat ne semble pas être utilisé dans les formules en aval?
Les points que tu soulèves qui restent:
* neutralisation de l'affichage: pas de problème
* calcul de la colonne AG: les formules sont toujours en place!
* lancement automatique: je devrais trouver cela dans un forum resp. dans l'aide
* nettoyage du gestionnaire des noms: donc aussi à intégrer dans la macro? Problème: je ne sais pas exactement en quoi existe ce nettoage ni comment l'intégrer dans la macro
* suppression des colonnes AA et AB peut être: comme je ne comprends pas tes formules je ne sais pas y porter un jugement
A+
Aloha
 

Fichiers joints

CISCO

XLDnaute Barbatruc
Bonjour

Bonjour,
J'ai testé ta macro; elle fonctionne, mais seulement pour une feuille, comme j'ai compris, toujours pour la feuille active. Il faut donc aussi l'étendre aux autres feuilles. Je vais essayer si j'y arrive en prenant le code requis dans une autre macro.
Les résultats de la colonne AE sont corrects!
Par contre, dans la cellule AB75 de la feuille Salarié 3 il y a "FAUX" comme résultat, ce qui, si j'ai bien analysé, n'a aucun impact sur le comptage des heures et des cycles. Si je comprends bien ta remarque concernant l'éventuelle suppression des colonnes AA et AB, ce faux résultat ne semble pas être utilisé dans les formules en aval?t
Il faut que je regarde l'origine de ce FAUX.

* calcul de la colonne AG: les formules sont toujours en place!
Oui, mais on peut aussi le faire avec une macro, à voir si c'est plus intéressant que les formules

* nettoyage du gestionnaire des noms: donc aussi à intégrer dans la macro? Problème: je ne sais pas exactement en quoi existe ce nettoyage ni comment l'intégrer dans la macro
Non, c'est à faire à la main, une seule fois, histoire d'avoir un fichier plus propre. Mais avant de le faire, il faut que je "retrouve" les liens existant entre les divers noms utilisés, pour ne pas en supprimer un, qu'il faut en réalité, garder.

* suppression des colonnes AA et AB peut être: comme je ne comprends pas tes formules je ne sais pas y porter un jugement
Elles ne sont peut être plus indispensables, la colonne AE étant maintenant calculées sans utiliser les valeurs contenues dans ces colonnes AA et AB.

@ plus

P.S : Avant de te précipiter... Je vais encore un peu regarder la macro existante, histoire de voir si on ne peut pas faire plus concis ou plus rapide.
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Comme d'habitude, tout n'est pas si simple...

Dans Salarié 4!AE28, donc sur la ligne 28, on a 13:00 qui correspond à une pause prise à cheval sur le 11 et le 12/01, sur les lignes 26 et 27. Donc, il arrive qu'une durée de repos soit indiquée sur une ligne située plus bas que le jour correspondant à cette pause. Si cela arrive à la fin d'une période de 7 jours, on aura peut être certaine fois une période de plus de 44 h signalée trop tard, sur la 1ère ligne de la période de 7 jours suivante. Cela risque de fausser les calculs. Rarement, mais cela peut arriver.

Conclusion : Puisque le but de cette partie des calculs, des colonnes AA à AG n'est pas de déterminer les heures de début, de fin de travail, les durées de toutes les pauses... mais de vérifier la présence ou l'absence de période de plus de 44 h de repos, il ne faut inscrire que ces durées de repos de plus de 44 h, sur la bonne ligne. Donc, je vais essayer de faire une macro pour obtenir les résultats de la colonne AG ou AH directement.

@ plus
 

CISCO

XLDnaute Barbatruc
Bonjour

En pièce jointe, une autre version comprenant :
* une macro remplissant la colonne AE, nommée débutAE, dans le module 1, idem à la dernière macro déjà proposée.
* une autre formule dans la colonne AF. Puisqu'on travaille avec une fichier annuel, et plus mensuel, commençant forcément le 1/1 à 00:00, on peut utiliser des formules plus simples que celles que j'ai proposées jusque là. On doit certainement aussi pouvoir supprimer des cellules vertes. J'essayerai plus tard.
* une nouvelle macro, nommée débutAG, dans le module 2, indépendante des colonnes de AA à AF, remplissant directement la colonne AG.

Je n'ai fait des tests que sur les feuilles salarié 3 et salarié 4. A tester davantage donc.

@ plus
 

Fichiers joints

Discussions similaires


Haut Bas