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

Macro de combinaisons

  • Initiateur de la discussion Initiateur de la discussion JJ1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JJ1

Guest
Bonsoir à tous,

Je souhaiterais votre aide pour une macro qui fait deux actions:
-elle crée des combinaisons de 5 nombres à partir de 20 nombres donnés en ligne 2: A2:T2

- vu le nombre important de combinaisons crées (environ 10000), elle ne les affiche pas, mais fait un comptage et inscrit en plage U2:Y13 uniquement celles qui sont le plus présentes dans une plage de réference (ici AA2:AT17).

Ce fichier est actuellement fait (avec des combinaisons de 4 nombres) par des formules et est très lourd mais surtout très très long à calculer!

Je pense qu'une macro irait beaucoup plus vite (et je peux ainsi passer à 5 nombres).

Bonne soirée

Important: ne pas tenir compte de ce post pour le moment, trop de combinaisons à gérer(j'ai calculé:15500 !!), je modifierai le fichier joint .
merci
 

Pièces jointes

Dernière modification par un modérateur:
Re : Macro de combinaisons

Bonjour à tous,

Juste une petite "amélioration" de l'excellent code de Roger2327 : couleur sur une combinaison (lors du double-clic)

A++ camarade François
A+ à tous
 

Pièces jointes

Re : Macro de combinaisons

Bonjour à tous et bravo pour toutes ces idées et surtout la diversité des solutions VBA.

A JCGL:Je viens de tester la couleur sur la macro, certaines combinaisons colorées sont décalées( ex 1 2 3 4 5 quand je double-clic, 1 est sur la ligne du dessus et 2 3 4 5 sur la ligne de la combinaison? peut être car il n'y a pas de RAZ et les couleurs restent?)

A Camarade Roger: merci pour la correction ROUGE de la plage de sortie. C'est un CAPITAL TRAVAIL COLLECTIF DE CLASSE ! (facile...).

Avez-vous une idée supplémentaire pour y greffer le numéro de ligne?
Encore merci à vous.
Bon dimanche
 
Re : Macro de combinaisons

Bonjour JJ1, le fil, le forum,

C'est un excellent travail en effet que celui de Roger (et JCGL).

Voici le mien ci-joint, je ne sais pas s'il est à la hauteur !

Avec les recherches nécessaires pour remplir les colonnes NB (H) et Ligne (J) comme le désire JJ1, la macro prend du temps pour déterminer les combinaisons : 6 secondes (5 nombres) et 15 secondes (6 nombres) sur mon ordi à 2 Ghz.

J'ai réalisé une macro SelectionChange (code de la feuille) qui permet de visualiser les cellules dans la plage par simple clic sur les lignes des combinaisons.

Nota : la plage est nommée "plage" dans la feuille.

A+
 

Pièces jointes

Re : Macro de combinaisons

Bonjour à tous,
Salut Job, JJ,

C'est un excellent travail en effet que celui de Roger (et JCGL)
Tous les "honneurs" doivent revenir à Roger... Ma maigre contribution n'était que du visiuel.

Bravo Job, la ligne et les couleurs... Nul doute que JJ sera comblé.

JJ : Zut encore un de plus sur LA LISTE... ??? Arf Arf 😉

A++
A+ à tous
 
Re : Macro de combinaisons

Bonsoir à tous
J'en finis avec cette nouvelle version tenant compte de la demande sur les lignes (dites-moi si c'est bien de cela qu'il s'agit) et le développement de l'exploitation de l'affichage en couleur judicieusement suggérée par JCGL.
Bilan en temps (version 6 nombres sur ma machine) :
Dernière version "job75" : 21 s.
Dernière version "ROGER2327" : 2 s.
Il convient toutefois de noter que nos deux propositions ne font pas du tout la même chose. Seul JJ1 peut nous dire ce qu'il attend vraiment.
ROGER2327
 

Pièces jointes

Dernière édition:
Re : Macro de combinaisons

Bonsoir Roger,

Pour ma part, pour la détection des lignes, je m'en suis tenu à l'exemple donné par JJ1 dans son dernier fichier, celui du post #13.

Bonne soirée.
 
Re : Macro de combinaisons

Bonsoir job75
Je viens de reprendre la chronologie et de constater que le deuxième classeur de JJ1 et l'envoi que j'ai fait se sont croisés : une minute d'écart ! Ce pourquoi le dit classeur m'a échappé. L'ayant examiné, je pense que votre solution est la bonne.
Cependant, ce problème étant amusant, je ne regrette pas d'y avoir consacré du temps. Je regrette seulement que de nombreux problèmes soient posés sans que leurs auteurs prennent le temps de les présenter complètement et clairement dès le départ. Bravo, donc, pour votre perspicacité et votre attention.​
Cordialement,
ROGER2327
 
Re : Macro de combinaisons

Bonsoir à tous
Suite au dialogue avec job75, j'ai repris mon code afin d'obtenir les mêmes résultats que lui. Au prix de modifications mineures, j'obtiens le classeur ci-joint.
J'ai modifié l'affichage des lignes : #3#11 à la suite d'une combinaison signifie qu'on a deux solutions, l'une à la ligne 3, l'autre à la ligne 11 du tableau (et non de la feuille).
Sur les données du classeur de job75, je trouve le même nombre de solutions (400) que lui, mais je ne les ai pas vérifiées une à une. Prudence donc : quelques vérifications plus poussées sont à envisager..
Voilà...​
Bonne nuit !
ROGER2327
 

Pièces jointes

Re : Macro de combinaisons

Bonjour à tous,
Encore merci pour vos macros.
Je vais toutes les tester aujourd'hui, je suis en RTT (profitons-en, ce n'est pas comme les impôts.....) et chronométrer !
A mon avis, je resterai à des combi de 5 (je pense que 6 sera bien long à "tourner"?)
Bon lundi .

ps: à JCGL, plus on est, plus le gâteau mincit.....Mince!
 
Re : Macro de combinaisons

Bonjour JJ1, le fil, le forum,

Pour effectuer la recherche des valeurs dans la plage [plage], il y a 3 possibilités :

- la méthode Find

- la fonction Application.CountIf (NB.SI)

- la fonction Application.Match (EQUIV)

J'ai testé les 3 et c'est Application.Match qui est nettement la plus rapide, je l'ai donc utilisée dans ma macro.

A+
 
Re : Macro de combinaisons

Bonjour à tous
Pour ma part, je n'utilise aucune des fonctions testées par job75. J'en suis resté à la manipulation de tableaux et à la comparaison terme à terme de leurs éléments. J'ai cherché à éliminer les calculs redondants et à ne faire aucun test pouvant conduire à la gestion d'une erreur (i.e. pas de structure du type "If IsError(...) Then ..."). J'ai dimensionné les tableaux au plus juste (du moins je l'espère). Je crois que la vitesse est à ce prix. Je viens de refaire des tests de vitesse sur les classeurs JJ1 combinaisons (job75) et Combi6_v4 (le mien) pour les combinaisons par 6. Je trouve :
  • Pour JJ1 combinaisons, sur un tableau de 14 lignes et 20 colonnes : 21 secondes.
  • Pour Combi6_v4, sur un tableau de 16 lignes et 20 colonnes : 2,3 secondes.
Pour ce qui est des combinaisons par 5, je n'ai pas encore écrit le code, mais si vous le souhaitez, je peux le faire.
Je pense que temps d'exécution devrait être de l'ordre d'une seconde : il n'y a donc pas grand intérêt à se limiter à ces combinaisons.
Tout cela bien sûr sous réserve de vérification approfondie des résultats.​
Bonne journée.
ROGER2327
 
Dernière édition:
Re : Macro de combinaisons

Bonsoir
Je complète ce travail avec un classeur permettant de rechercher les combinaisons de 4, 5, 6, 7, 8, 9, 10 et 11 éléments. À partir de 7 éléments, il faut plus d'une colonne pour afficher toutes les combinaisons. Je n'affiche donc que celles qui se trouvent au moins une fois dans le tableau. Les performances sont correctes : le temps de calcul va de 0,3 s à 2,8 s sur ma machine.
Voilà...​
ROGER2327
 

Pièces jointes

Re : Macro de combinaisons

Bonjour Roger, le Forum,
Merci pour cette nouvelle mouture.
Par contre, je viens de télécharger le fichier et je le testerai ce soir...des combinaisons de 11 éléments me paraissent beaucoup, je verrai à l'usage (7 oui).
Je te remercie et bon AM
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
534
Réponses
9
Affichages
1 K
M
Réponses
6
Affichages
1 K
maxime45
M
N
Réponses
11
Affichages
2 K
NathalieQSE
N
C
Réponses
4
Affichages
2 K
C
B
Réponses
2
Affichages
2 K
bastienb
B
N
Réponses
5
Affichages
3 K
Nicocotte125
N
P
Réponses
3
Affichages
1 K
P
Réponses
1
Affichages
917
M
Réponses
4
Affichages
3 K
mat3692
M
A
Réponses
9
Affichages
992
M
Réponses
3
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…