XL 2016 lenteur code VBA

sandydavneo

XLDnaute Nouveau
Bonjour à tous,

je me permets de vous solliciter car je rencontre un souci sur un fichier créé par un modérateur du forum.
C'est un fichier incroyable, qui permet de changer les mois automatiquement en inscrivant une simple date et qui permet de calculer les jours fériés, nuits, jours ouvrés et dimanches sur des agents de sécurité.
J'ai récupéré cette matrice et j'ai formalisé un tableau pour mon utilisation.
Malheureusement, dès que je rentre des données, le fichier rencontre des lenteurs incroyables. A tel point, que par moment, le fichier plante...
Je n'y connais pas grand chose en programmation VBA et je n'ose surtout pas toucher ces lignes de programmation, peur de tout fracasser !!!

Svp, crack d'Excel et amis modérateurs, auriez-vous une solution miracle ?
Ou bien une autre façon de calculer ce que je recherche au travers de ce tableau fort utile mais inutilisable pour le moment ?

Je vous remercie par avance pour votre contribution.
Bon courage et bonne journée.
 

Pièces jointes

  • SOCIETE X - Ponctuel (Comptabilité).xlsm
    320.9 KB · Affichages: 38

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

Ci-joint une proposition, dan laquelle j'ai effectué quelques modifications :
- modification de la formule de la colonne Total mission,
- modification de la formule des colonnes Coût HT,
- suppression de toutes les MFC inutiles (deux suffisent),
- suppression de la forme matricielle (qui me semblait inutile) des formules utilisant la fonction Determine_Heures,
- suppression de l'utilisation de la fonction TJF dans la MFC (qui ralentissait trop les calculs), et remplacement par l'utilisation d'un tableau de jours fériés.
@TooFatBoy , les formules matricielles avec Determine_Heures étaient dues à 365 que j'utilise et qui crée automatiquement des matricielles sur les fonctions personnalisées pour la compatibilité des matricielles dynamiques avec les versions antérieures d'Excel, elles ne sont effectivement pas nécessaires, invisibles sous 365 et je n'y avais pas pensé.
Pour TJF, la fonction est très rapide, je ne pense pas que sa suppression dans les MFC ait un impact, l'allégement des MFC et l'allégement des formules plus certainement.
@sandydavneo , le sujet de la discussion était la lenteur du fichier sur votre ordinateur, la version de TooFatBoy vous convient, je le laisse continuer, je suis, pour ma part, peu disponible.

Cordialement, @+
 

TooFatBoy

XLDnaute Barbatruc
Pour TJF, la fonction est très rapide, je ne pense pas que sa suppression dans les MFC ait un impact, l'allégement des MFC et l'allégement des formules plus certainement.
En fait, la suppression de l'utilisation de TJF est ce que j'ai fait en dernier car le fichier était toujours très lent malgré les autres modifications.


L'avantage d'avoir un PC comme le mien qui a 15 ans (Core2 Duo avec 8 Gio de RAM), c'est qu'on voit bien les lenteurs... 😁
Exemple pour le "Copier / Coller formule" :
- d'une cellule vers une autre, ça mettait bien 5 minutes,
- d'une cellule vers tout une colonne, ça mettait peut-être bien 15 minutes !...
Autre exemple, pour simplement aller de la dernière cellule d'une colonne à la cellule d'en-tête, il me fallait attendre de très très longues secondes.

Actuellement le fichier est encore un peu lent. On sent toujours une certaine latence.
Par exemple, ce même déplacement n'est toujours pas instantané, mais presque.
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Le fichier ne ralentit plus du tout sur mon ordinateur...
JE TE REMERCIE GRANDEMENT !!!
Je vais faire des tests dans la journée mais cela me semble topissisme.
Chez moi c'est encore un peu lent.

Je viens de me rendre compte que je n'ai pas vérifié si les conseils de @Dranreb étaient en place.

Et j'ai oublié de préciser que j'ai aussi détaché la ligne de totaux du reste du tableaux.
Ça n'améliore pas la vitesse du fichier, mais ça me simplifiait grandement la vie lors des déplacements pour les "Copier / Coller formule"... 😁
 

TooFatBoy

XLDnaute Barbatruc
Nous avons des évènements qui démarre à une date et qui finissent 7 jours après (par exemple une manifestation du vendredi 12/08 au vendredi 19/08 de 8h00 à 23h00).
Dans ce tableau, nous devons faire 7 fois la manipulation pour arriver à nos fins. C'est certainement pour cela que les calculs sont nombreux et de ce fait, très long.
Auriez-vous une solutions pour n'inscrire qu'une seule fois la date de début et la date de fin ? De façon à retrouver les calculs des heures effectuées en dimanche jour et nuit, en férié jour et nuit et en ouvré jour et nuit ?

J'espère avoir été clair dans mes explications.
Pour mieux comprendre, je vous joins un tableau de nos évènements.
Désolé, je n'ai rien compris, et je ne vois pas le rapport entre ce que tu décris et le fichier fourni, ni le rapport avec le fichier précédent. :(

N'hésite pas à ouvrir un autre fil de discussion si le problème initial de celui-ci est résolu. ;)
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi