Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Temps éxécution très long sur un userform

Did25

XLDnaute Occasionnel
Bonjour le forum XLD , après vous avoir sollicité pour la construction de mon fichier de gestion de calcul retraite , je constate une éxécution très longue de mon userfom lorsque je fait une requête ,existe t-il une solution pour améliorer cela ,ou faut-il changer la façon de procéder ,merci de votre aide
 

Pièces jointes

  • Fichier de calcul retraite multi-postes.xlsm
    576.1 KB · Affichages: 39
Solution
Bonjour Didier

Voila ton fichier modifié, il a fallu que je reprenne complètement le code qui fonctionne maintenant différemment, j'ai aussi revu ton userform de simulation car certaines textbox nommées ne correspondaient pas à la valeur stockée.
Bons tests !

Bien cordialement, @+
Didier,

N'hésites pas à utiliser dans tes proc la désactivation de l'affichage, du calcul et des événements sans oublier la routine de gestion d'erreurs en fin et le on error au début pour éviter tout problème de désactivation résiduelle. C'est simple et cela accélère déjà considérablement les codes qui agissent sur les cellules. Si tu as besoin dans ton code que les formules soient recalculées en cours de traitement, places un calculate sur l'application, le workbook, la worksheet ou la range concernée.
Après cela, un peu plus compliqué, il y a d'autres moyens d'accélérer en calculant tout en mémoire avec des tableaux VB, en écrivant les cellules en une seule fois ou en appliquant en une fois des modifications de format ou des formules sur un ensemble de cellules ( voir la méthode union, très pratique pour cela ).

Bien cordialement, @+
 

Did25

XLDnaute Occasionnel
Salut Yeahou ,toujours sur mon fichier ,j'ai effectué des modifications car en fonction de certains accords ,il faut que j'intègre des critères supplémentaires, à savoir que les jours de récupérations s'implantent en premier à partir de la date carsat et qu' ils sont exprimés en mois exclusivement, c'est à dire par exemple date carsat 1/12/2021 avec 6 mois de jours récupération cela donne "cellule 9" jusqu'au 01/07/2021 ,ensuite se sont les divers congés qui enchainent , ils sont exprimés en jours "cellule 6",mais ils doivent prendre en compte que des mois pleins ,par exemple si il y a 30 jours de jours récupérations, seulement 18 peuvent être pris en compte car les 12 autres dépassent un mois calendaires vis à vis des postes .Même règle pour les jours épargnés "cellules 5". Cela devient compliqué surtout pour la prise en compte de mois , merci de bien vouloir m'apporter ton aide
 

Pièces jointes

  • Fichier de calcul retraite 5x8.xlsm
    579.9 KB · Affichages: 6
Bonjour Didier, le forum

Je vois le problème, surtout sur un roulement ou de par nature le nombre de jours de travail diffère selon le mois. Bizarre tes accords, ils pénalisent le salarié qui veut partir au plus vite. Cela complexifie le calcul de date de départ, tes salariés poseront leurs jours restants avant et cela va forcément fausser la prévision pour les calculs d'effectif et retarder les remplacements. Mais bon, un accord est un accord. Et pour les jours résiduels, tu veux un décompte ? leur somme pourra au final couvrir plusieurs mois !
Je ne sais pas si j'aurai le temps de faire cela aujourd'hui, je te fais signe dès que c'est prêt.

Bien cordialement, @+
 

Did25

XLDnaute Occasionnel
Et oui Yeahou ,pour les jours résiduels ,il me faut un décompte mais si tu regardes le fichier j'ai déjà préparé le terrain ,car je veux un décompte séparé. Par contre ,il est vrai que les accords ne sont pas à l'avantage du salarié mais mon fichier va pouvoir aider à faire le calcul exact des reliquats de congés qui seront payés à la fin par l'entreprise et je pourrais comparé avec celui du gestionnaire de l'entreprise ,il y a tellement d'accords que souvent au final il y a désaccord .......Merci en attendant
 

Did25

XLDnaute Occasionnel
C'est exact ,j'ai juste fait le calcul pour que tu vois ,pour les divers congés et les jours épargnés j'ai fait une simulation avec 30 jours et comme cela dépasse un mois par rapport aux postes ,il restait des reliquats ,si il y avait eu 36 jours ,il n'y aurait pas eu de reliquat car par rapport aux postes ,cela prenait 2 mois pleins
 
Bonjour Didier

Voila ton fichier modifié, il a fallu que je reprenne complètement le code qui fonctionne maintenant différemment, j'ai aussi revu ton userform de simulation car certaines textbox nommées ne correspondaient pas à la valeur stockée.
Bons tests !

Bien cordialement, @+
 

Pièces jointes

  • Fichier de calcul retraite 5x8 - Copie.xlsm
    577.4 KB · Affichages: 8

Did25

XLDnaute Occasionnel
Bonsoir Yeahou ,j'ai fait le test et j'ai effectué une modification sur le module n°2 avec :
f1.Range("D3").FormulaR1C1 = MoisRecuperation5x8f1.Range("D3").FormulaR1C1 = MoisRecuperation5x8
afin de mettre le nombre de mois sur le tableau de bord ,c'est nickel ,il me reste a l'adapter sur les autres rythmes de travail ,j'aurai peut-être des choses à voir au sujet des trois quart temps mais ce n'est pas certain ,merci encore bonne soirée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…