• Initiateur de la discussion Initiateur de la discussion bonoo
  • 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 !

B

bonoo

Guest
bonjour a tous
Dans le classeur ci joint , je cherche a generer toutes les combisaisons possible du quinté + c est a dire toutes les combinaisons de 5 chevauux ainsi que la valeur total de ces chevaux .Peut etre qu une personne du forum a deja fait ou deja vu cela quelque part , merci beaucoup pour ce coup de main
merci
bono
 

Pièces jointes

Bonjour Joel


Joint un fichier qui j'espère correspond à tes souhaits ?

Tes données sont très certainement importées d'un site internet, leur format ne permet pas de les inexploiter immédiatement sur excel. Il faut donc les copier/coller en valeur avant de les placer dans le tableau de base bleu.

Cordialement

Bernard
 

Pièces jointes

Bonsoir Bonoo et le forum

Je pense que l'on peut accélérer la procédure de tirage du fichier combinaisonsV1 !
Cependant à ce niveau, je suis en limite de rupture et je serais très heureux si parmi les pros VBA de ce forum, quelqu'un voulait bien se donner la peine de lui donner plus de vélocité et nous en exposer les raffinements.

Option Explicit
Sub Tirage()
Dim MaLigne As Long
Dim ModeCalcul As Long
Dim NbPart As Byte
Dim i As Long, j As Long, k As Long, l As Long, m As Long
ModeCalcul = Application.Calculation

Application.ScreenUpdating = False
Sheets("Calcul").Select
Sheets("Calcul").Range("C5😀20000").ClearContents

MaLigne = 4
NbPart = [NbParts]

ReDim tabPart(NbPart)
For i = 1 To NbPart
tabPart(i) = Range("Refparts").Cells(i, 1)
Next i
For i = 1 To NbPart - 1
For j = i + 1 To NbPart
For k = j + 1 To NbPart
For l = k + 1 To NbPart
For m = l + 1 To NbPart
MaLigne = MaLigne + 1
Cells(MaLigne, 3) = Str(tabPart(i)) & " " & Str(tabPart(j)) & " " & Str(tabPart(k)) & " " & Str(tabPart(l)) & " " & Str(tabPart(m))
Next m
Next l
Next k
Next j
Next i

MaLigne = 4
ReDim tabPoint(NbPart)
For i = 1 To NbPart
tabPoint(i) = Range("Refpoints").Cells(i, 1)
Next i
For i = 1 To NbPart - 1
For j = i + 1 To NbPart
For k = j + 1 To NbPart
For l = k + 1 To NbPart
For m = l + 1 To NbPart
MaLigne = MaLigne + 1
Cells(MaLigne, 4) = tabPoint(i) + tabPoint(j) + tabPoint(k) + tabPoint(l) + tabPoint(m)
Next m
Next l
Next k
Next j
Next i

Application.Calculation = ModeCalcul
Range("G2").Select
Application.ScreenUpdating = True
End Sub

Merci de votre bienveillance.

Cordialement

Bernard
 
bonsoir

Bernard crois tu que l on peut integrer , par exemple le choix de chevaux a garder en consideration , comme par exemple je veux le 108 et le 105 dans toutes les combinaisons , ou seulement 1 cheval ou trois , suivant mon choix , questions de reduction !
merci bien
joel
 
Salut,

Bernard , tu peux affecter directement une plage de cellules à un tableau et vice versa on évite un 2 éme passage:

Sub Tirage()
Dim TabPart, TabRes
Dim I&, J&, K&, L&, M&, N&, NbPart As Byte
Dim ModeCalcul As Long
ModeCalcul = Application.Calculation

Application.ScreenUpdating = False
Sheets("Calcul").Select 'je le laisse pour les utilisateurs XL97
Sheets("Calcul").Range("C5😀20000").ClearContents
N = 1
NbPart = [NbParts]
TabPart = Range([A5], [B65536].End(xlUp)).Value
ReDim TabRes(1 To [B2].Value, 1 To 2)
For I = 1 To NbPart - 1
For J = I + 1 To NbPart
For K = J + 1 To NbPart
For L = K + 1 To NbPart
For M = L + 1 To NbPart
' Maligne = Maligne + 1
TabRes(N, 1) = Str(TabPart(I, 1)) & " " & Str(TabPart(J, 1)) & " " & Str(TabPart(K, 1)) & " " & Str(TabPart(L, 1)) & " " & Str(TabPart(M, 1))
TabRes(N, 2) = TabPart(I, 2) + TabPart(J, 2) + TabPart(K, 2) + TabPart(L, 2) + TabPart(M, 2)
N = N + 1
Next M
Next L
Next K
Next J
Next I
[C5].Resize(UBound(TabRes), UBound(TabRes, 2)) = TabRes

Application.Calculation = ModeCalcul
Range("G2").Select
Application.ScreenUpdating = True
End Sub

J'ai eu beau cherché Ti dasn tes nombreux posts, je n'ai rien retrouvé.

A+++

Lien supprimé
 
Bonjour Zon et le forum

Je découvre la macro new look et je n'ai que deux mots à dire "Bravo" et "Merci".

Bravo parce que le résultat et bien là et merci pour ta sollicitude.

Effectivement, l'utilisation de deux tableaux en parallèle évite la redondance de procédure et la méthode d'affichage employée fait toute la différence en matière de vélocité.

Au plaisir de lire à nouveau tes oeuvres sur ce forum.

Cordialement

Bernard
 
- 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
4
Affichages
448
Réponses
24
Affichages
1 K
Retour