Construire un tableau excel de 5 colonnes en y retrouvant au

Résolu
jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024 - 8 févr. 2024 à 14:27
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 11 févr. 2024 à 22:09

Bonjour à tous

une ligne de 5 cellules remplis de 5 nombres

une suite de 30 nombres 

Je souhaite créer un tableau Excel de 5 colonnes ou je voudrais retrouver sur une ligne de ce tableau 4 cellules  ou si c'est possible 5 cellules équivalent a mes 5 nombres de ma première ligne

Un logiciel "reduc miz" existe mais il ne me convient pas

merci


Windows / Edge 121.0.0.0


A voir également:

5 réponses

jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024
Modifié le 8 févr. 2024 à 14:52

https://www.cjoint.com/c/NBinKujhLpG

 https://www.cjoint.com/c/NBinMrUq7rG

j'ai fait une erreur On oublie les 5 cellules On créé le tableau avec simplement les nombres imposés

on doit retrouver dans le tableau toutes les combinaisons possibles pour retrouver au minimum 4  cellules ou 5 si c 'est possible Je sais ca fait beaucoup de ligne

milles excuses


0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
8 févr. 2024 à 16:51

Bonjour

1) Entrer dans une feuille les 30 nombres choisis sur la 1ere ligne (de A1 à  AD1)

2) Ouvrir l'éditeur VBA (Alt+ F11) - Insertion - Module puis copier -coller dans le module la macro ci-dessous puis fermer l'éditeur

Sub combi()
x = 2
Application.ScreenUpdating = False
For a = 1 To 26
For b = a + 1 To 27
For c = b + 1 To 28
For d = c + 1 To 29
For e = d + 1 To 30
x = x + 1
Range("A" & x) = Cells(1, a) & " " & Cells(1, b) & " " & Cells(1, c) & " " & Cells(1, d) & " " & Cells(1, e)
Next
Next
Next
Next
Next
Application.ScreenUpdating = True
End Sub

3) Depuis la feuille avec le s30nombres lancer la macro combi (onglet Développeur du ruban) - Macros

La macro met quelques secondes pour s’exécuter puisqu'il y a 142 506 combinaisons de 5 chiffres pris parmi 30 possibles

Cdlmnt

Via


0
jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024
10 févr. 2024 à 14:23

bonjour

ca fonctionne tres bien mais ca met 20mn! c'est pas grave

6 24 10 11 13 14 15 17 18 20 23 26 27 34

soit 22 cellules

mon résultat résultat 13 23 24 34

mon algo est il bon:

Sub combi()
x = 2
Application.ScreenUpdating = False
For a = 1 To 22
For b = a + 1 To 19
For c = b + 1 To 20
For d = c + 1 To 21
For e = d + 1 To 22
x = x + 1
Range("A" & x) = Cells(1, a) & " " & Cells(1, b) & " " & Cells(1, c) & " " & Cells(1, d) & " " & Cells(1, e)
Next
Next
Next
Next
Next
Application.ScreenUpdating = True
End Sub

Demande est-il possible de trier B-C-D-E-F automatiquement?

en extrayant 1 nombre par cellule B C D E F
est il possible de faire un tri sur les cellules B-C-D-E-F qui contiennent l'équivalent de P-Q-R-S-T D Et 4 Numéros de P-Q-R-S-T?
est il possible de supprimer toutes les cellules B-C-D-E-F qui sont incomplètes

d'avance merci

0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
10 févr. 2024 à 15:55

Re,

1) non ton algo n'est pas bon à cause de la 1ere boucle qui devrait être :

For a = 1 To 18

puisqu'il faut laisser 4 numéros pour la dernière combinaison de 5 (comptant les n°S de rang 18,19,20, 21 et 22)

Ceci corrigé on obtient  les  26 334 combinaisons possibles sans ligne incomplète !

2) ton ordi doit être sacrement encombré pour que ça prenne 20 mn chez toi alors que cela prend 4 secondes chez moi !

3) On peut faire afficher un nombre par cellule en remplaçant la ligne

Range("A" & x) = Cells(1, a) & " " & Cells(1, b) & " " & Cells(1, c) & " " & Cells(1, d) & " " & Cells(1, e)

 par celles-ci :

Range("A" & x) = Cells(1, a)
Range("B" & x) = Cells(1, b)
Range("C" & x) = Cells(1, c)
Range("D" & x) = Cells(1, d)
Range("E" & x) = Cells(1, e)

 mais attention cela multiplie le temps de traitement par 3

4) De quoi veux tu parler avec P Q R S T ? du "résultat" 13 23 24 34 ?

5) L'algo traite les nombres dans l'ordre où ils sont dans la première ligne, si tu veux des combinaisons triées par nombre il suffit au départ de rentrer les nombres de la première ligne dans l'ordre du plus petit au plus grand


0
jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024
11 févr. 2024 à 17:02

super ca marche tres bien

ca me sort avec 29 N° 120000 combinaisons! Par contre ça met 3 heures

Que puis je faire pour accélérer le processus?

Et maintenant dernière question P Q R S T en L3

Est on capable de savoir combien il y a de combinaison dans les résultats A B C D E qui comprennent au moins 3 Nombres dans P Q R S T 4 Nombres ou 5 Nombres  Est possible?

avec tous mes remerciement

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
11 févr. 2024 à 22:09

Re,

1) avec 29 n°s cela fait 118 755 combinaisons de 5 n°s (29 x 28 x 27 x 26 x 25 / (5 x 4 x 3 x 2 x 1)

Pour les écrire dans la feuille la macro prends chez moi une minute !

Tu demandes que faire pour accélérer chez toi : faire tourner le programme sur un autre ordi que le tien qui rame comme pas possible apparemment (déjà le nettoyer, n'avoir aucun autre programme qui tourne en même temps, ne pas avoir dans le fichier Excel des feuilles avec des formules qui se recalculent à chaque fois et qui ralentissent...)

2) Dans mon fichier ci-joint j'ai d’ailleurs rajouté dans la macro pour 29 combi une ligne pour désactiver le calcul auto pour éviter ce problème de formules qui ralentissent

3) Pour comparer chaque combinaison avec la combinaison particulière entrée en L3, M3, N3, O3 et P3 j'ai rajouté des NB.SI dans la macro, le résultat s'affichant dans la colonne G

Il te suffira ensuite de filtrer le tableau sur la colonne G en ne conservant que les critères 3, 4 et 5

https://www.cjoint.com/c/NBlvjhjT2AQ

Cdlmnt

Via


0