Eyjaring
Messages postés3Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 7 février 2006
-
6 févr. 2006 à 15:34
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
7 févr. 2006 à 18:29
Bonjour.
J'utilise à ce jour un fichier excel dans lequel je dois calculer le nombres de jours entre 2 dates tout en excluant les jours fériés. J'ai trouvé mon bonheur avec la fonction excel nb.jours.ouvrés.
Malheureusement à ce jour, mon fichier va bientot compter 1000 enregistrements et lors de la moindre modification excel recalcule les nb.jours.ouvres de tout mon fichier. A ce jour la moindre modifs prend 2 a 3 minutes pour etre prise en compte le temps qu'excel recalcule le tout.
De plus vu le temps de recalcul je ne peux pas me permettre de faire les calculs sur ordre : en effet je ne suis pas la seule a travailler sur le fichier et je me voietres mal dire a mes utilisateurs "pour une modif de 2 sec tu devra attendre 3 min de mise a jour" ou bien "pour voir tes modifs il faut que tu fermes puis ouvre ton fichier" :(
Connaissez vous un moyen d'accelerer le temps d'execution de cette fonction (nb.jours.ouvres) ou tout simplement une autre fonction s'executant plus rapidement voir du Vba. Je precise que je travaille sous Execl 97 et qu'il m'est impossible de migrer le tout sous access ou tout autre basede données.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 févr. 2006 à 20:49
Salut
Est-ce que tu utilises cette fonction telle quelle ou bien l'utilises-tu dans une macro ?
Si Oui : Fais-tu des boucles dans cette macro ?
Es-tu sure que ces boucles soient 'propres' ?
Il faudrait que tu nous copies/colles le code, qu'on y jette un oeil.
Je ne vois pas pourquoi "faire les calculs sur ordre" (F9) est gènant puisque de toute façon, si le fichier est ouvert sur ton poste, personne d'autre ne peut le lire (à part en mode lecture seule).
Il faut peut-être repenser la méthode de stockage de tes lignes et les dispatcher sur plusieurs feuilles ou plusieurs classeurs. Je pense que Excel ne recalculera pas les feuilles qui ne sont pas apparentes, sauf si tu fais des liaisons.
Sinon, il faut changer de machine et/ou installer plus de mémoire.
Désolé, il n'y a pas de solution miracle.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Eyjaring
Messages postés3Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 7 février 2006 7 févr. 2006 à 09:54
Re-Bonjour, merci pour vos réponses, c'est exactement ce qu'il me faut, de cette facon je peux intercepter l'event et lui demander de recalculer pour la ligne en cours uniquement, recalcul qui est desormais transparent.
Me suffis plus de rajouter une chtite fonction pour me calculer les jours fériés à la volée ( mais ca, ca ne devrait pas poser de pbs). Vous etes des chefs !!!!
Merci bcp
Vous n’avez pas trouvé la réponse que vous recherchez ?
Eyjaring
Messages postés3Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 7 février 2006 7 févr. 2006 à 10:03
Un petit rajout le temps d'execution est egalement instanté meme si je je lance le traitement sur mes 1000 enregistrements ( que je peux pas dispatcher en plusieurs feuilles car justement le but est de pouvoir avoir les données sur la meme feuille). C'est trop beau a voir tellement c'est rapide
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 févr. 2006 à 18:29
Re
Content que ça solutionne ton problème.
Ta macro "nb.jours.ouvres" est incluse dans les fonctions complémentaires de Excel.
Je pense que cette macro est internamtionale et, à ce titre, elle doit recalculer les dates des jours fériés à chaque appel. C'est surement la raison de sa lenteur.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)