Bonjour à tous,
Merci à ceux qui se sont donnés la peine de me donner une réponse construite...
Apparemment le mot "confidentiel" vous pose problème... Je me doute bien que je ne viens pas de ré-inventer l'eau chaude, mais ce fichier a simplement été rédigé lors de mes heures de travail (dans un centre R&D). Voila pourquoi je ne peux me permettre de vous le transmettre. Cependant, s'il vous est impossible de m'aider sans avoir ce fichier, je comprends parfaitement, et auquel cas je continuerai à chercher de mon côté.
Concernant la complexité de la macro, je n'ai bien évidement pas utilisé de fonctions dont je suis le seul à connaitre (bien au contraire)... Et croyez-moi, je ne me considère pas (du tout!) comme meilleur que vous sur le sujet des macros Excel, sinon je ne serai pas ici en train de vous demander de l'aide... A la place du mot compliqué, j'aurais plutôt dû dire qu'elle est longue (ou tout du moins par rapport à celles que j'avais faite précédemment : 2 500 lignes)... Beaucoup de temps sera donc nécessaire pour comprendre cette macro, et je ne suis pas sur que comprendre le fonctionnement entier de la macro fasse avancer le schmilblick :/ ...
Je vais tenter de travailler sur une version light de mon fichier excel+macro, histoire de ne garder que les bases et voir si le problème est toujours là. Auquel cas, je mettrai le fichier dans un prochain post pour que vous puissiez constater le problème par vous-même 
@Joe.levrai
Merci pour ton aide.
Le problème est que je ne vois pas quelle partie du code pourrait me générer ce ralentissement car je n'appelle JAMAIS la feuille "Sketch_select" (celle qui est incriminé dans le ralentissement de ma macro). Et cette feuille ne contient aucun code!
1ère ligne de la macro:
Worksheets("Sketch_select").EnableCalculation = False
Voici la première ligne de mon code... Cette feuille "Sketch_Select" fait référence à une UNIQUE feuille: la feuille "results" dans laquelle tous les résultats issus de la macro et du solver sont mis à jour en temps réel pendant que la macro tourne. Dans la feuille Sketch_select, je n'utilise que des formules directes et des recherchesV... En mode debug, j'ai bien pu observer que la mise à jour de cette feuille "Sketch_Select" ne se fait pas pendant que la macro tourne... Elle ne se fait qu'à la fin de ma macro...
Dernière ligne de la macro
Worksheets("Sketch_select").EnableCalculation = True
Seulement, je n'arrive pas à comprendre pourquoi en supprimant cette feuille "Sketch_select", la macro tourne deux fois plus vite. Sachant que pendant que la macro tourne, Excel ne doit pas (et il ne le fait pas!) mettre à jour les résultats de cette feuille... Quelque chose m'échappe à ce niveau... En fait, il faudrait plutôt une ligne de code me permettant de dire à Excel de faire comme si cette feuille n'existait pas du tout!
@clementmarcotte
Merci pour ta réponse. Ayant ce problème dans le cadre de mon travail, je ne peux pas me permettre (et je n'en ai pas les droits) d'installer les logiciels que je veux. Mais je prends note de ton message pour des projets personnels 
De plus, je ne pense pas que le problème vienne du solver en lui-même, car que la feuille "Sketch_select" soit là ou non, la macro tourne sans erreur tout en me fournissant les mêmes résultats.
J'ai bien évidemment pensé à cette ligne de code:
application.screenupdating = false
Cependant, le solver a cette particularité de le remettre automatiquement à "true" à chaque fois qu'il est lancé. Et ça, même en cherchant sur des forums, je n'ai trouvé personne capable de contourner ce problème. Mais si tu étais au courant de ce problème et que tu as la solution, je suis bien évidemment preneur, bien que cela ne soit pas le coeur de ma problématique
.
Partager