Augmentation de la vitesse d'un algo avec critères

Bonjour,

Je reviens devant cette communauté d'experts Excel quelque peu "mortifié" depuis mon dernier message sur le hasard. Je ne veux pas susciter de débat. J'aimerais juste obtenir une réponse Excel à ma demande. Je cherche une façon d'améliorer la vitesse d'un code VBA sans l'utilisation habituelle des applications. .DisplayAlerts = False et autres du même genre car je n'ai pas l'impression que cela améliore la vitesse.

Plutôt que de passer par une formule de segmentation des données, j'ai décidé d'utiliser un code avec critères (variables). L'ajout de critères ralenti la recherche, probablement quelque chose de normale, et je me demandais si on pouvait en augmenter la vitesse.

Comme toujours un gros merci pour votre expertise et votre savoir-faire.

Petit Loup

Bonjour,

je viens en effet de voir le sujet que tu mentionnes: https://forum.excel-pratique.com/viewtopic.php?f=2&t=128227&start=20

Navré que des membres du forum aient tourné ta demande en débat sur une section qui n'est pas faite pour ça, ils ont pourtant cette section qui le permet: https://forum.excel-pratique.com/viewforum.php?f=5

Concernant ta demande, je vais essayer de me pencher dessus et reviens vers toi si j'ai ou non une solution

re à vous

ayant participé, j'ai tenté à plusieurs reprises mais en vain, de lancer une aide sur le solveur comme suggéré par James (domaine où je suis une quiche)

amitiés et bonne continuation, avec ou sans solveur

Me revoilà,

j'ai regardé le code et la façon dont il fonctionne, je n'ai pas spécialement l'impression que les fonctions sont optimisables, en revanche, j'ai vu qu'assez souvent tu allais dans worksheet_change car tu modifiais une ou plusieurs cellules de ta feuille, et que ce que faisait ton worksheet_change était simplement mettre à jour la valeur de y8.

Et que l'affichage à l'écran n'était pas désactivé non plus, du coup je me suis permis de désactiver les évènements et la mise à jour automatique à l'écran, et j'ai bien l'impression que ça va plus vite, normal comme ça ne va plus vérifier 2 fois quelle plage a été modifié à chaque fois qu'il y a une modification dans la feuille. Première vérification à cause de ta macro GetRandomNumber, et deuxième à cause du worksheet_change qui va modifier la valeur de y8 et donc relance worksheet_change.

J'ai juste fait une toute petite optimisation supplémentaire, tu recalculais y8 à chaque fois alors qu'il ne servait pas pour ta boucle, je l'ai mis à la suite de celle-ci pour qu'il ne soit recalculé que quand tu auras ta bonne combinaison.

Je te joins le fichier avec modification:

Bonjour,

Merci Ausecour.

Je ne gagne pas forcément en vitesse, si un peu, mais ta modification notamment de la position du Loop est effectivement beaucoup plus cohérente avec le reste du code. J'espère que l'ajout éventuel de plusieurs autres critères ne viennent pas trop ralentir la recherche même si ce n'est pas un concours de vitesse mais d'efficacité du résultat.

Note pour Jmd: Je te remercie encore une fois par ta suggestion. Je ne dis pas qu'elle est mauvaise mais je ne crois que le Solveur réponde actuellement à l'orientation de mes recherches. C'est une option de plus à considérer mais je devrais apprendre à mieux l'utiliser car malgré mes lectures et mes essais, je n'ai rien compris à cette fonction étant donné qu'elle demande le résultat espéré alors que c'est lui que je recherche à partir de méta-données.

Merci

re

la suggestion est de James, pas de moi qui n'ai fait que la relayer

je pense que c'est une piste à explorer

mais comme toi je suis novice en la matière, et je ne sais pas trop comment introduire la notion d'objectif

amitiés à vous

Bonjour,

Il me semble que j'ai abusé beaucoup de votre talent et votre temps pour mon projet que certains disent impossible à réaliser. Ce qu'il y a de plus embêtant c'est que je les crois mais j'ai tout de même décidé de persévérer... J'ai beaucoup appris auprès de vous les experts Excel au sujet du VBA. Merci. Je crois que vous faites du bon boulot. Je vais faire une petit pause, histoire de me ressourcer et prendre un certain recul.

Amitié,

Petit Loup

Rechercher des sujets similaires à "augmentation vitesse algo criteres"