Hola,
Como dicen todos, llenar una gran cantidad de columnas con todas las combinaciones posibles no será prácticamente explotable después.
Sin embargo, enumerar todas las combinaciones de 5 cifras (es decir, 2 118 760 combinaciones) y enumerar aparte las combinaciones de los números estrella (es decir, 66 combinaciones) tal vez sea más fácil de gestionar luego, queda por saber qué quieren hacer con eso.
Les propongo una macro que en un primer momento busca las 66 combinaciones de los números estrella, luego busca las 2 118 760 combinaciones del sorteo de 5 cifras.
- las 66 combinaciones de los números estrella en la columna A
- las 2 118 760 combinaciones de los sorteos de 5 cifras en una tabla que va de B2 a AJ60537.
Todo realizado en menos de 18 segundos en mi PC.
El código
Sub Encontrar_combinaciones() Dim Lig As Long, Col As Long, i As Double, q As Double Dim Val_1 As Long, Val_2 As Long, Val_3 As Long, Val_4 As Long, Val_5 As Long Dim Combi Dim Dep As Date Cells.ClearContents Application.ScreenUpdating = False Deb = Timer 'buscar combinaciones con 2 valores estrella Encontrar_combinaciones_2_Etoiles 'buscar combinaciones con 5 valores Combi = ",1,2,3,4,5" Lig = 1 Col = 2 Dep = 1 ReDim Result(60536) As String q = 1 For i = 1 To 2118760 'Número máximo de combinaciones de 5 sorteos sobre 50 If q = 1 Then Deb_Combi = Combi Combi = Split(Combi, ",") Val_1 = Combi(1) * 1 Val_2 = Combi(2) * 1 Val_3 = Combi(3) * 1 Val_4 = Combi(4) * 1 Val_5 = Combi(5) * 1 If Val_5 < 50 Then Val_5 = Val_5 + 1 Else If Val_4 < 49 Then Val_4 = Val_4 + 1 Val_5 = Val_4 + 1 Else If Val_3 < 48 Then Val_3 = Val_3 + 1 Val_4 = Val_3 + 1 Val_5 = Val_4 + 1 Else If Val_2 < 47 Then Val_2 = Val_2 + 1 Val_3 = Val_2 + 1 Val_4 = Val_3 + 1 Val_5 = Val_4 + 1 Else If Val_1 < 46 Then Val_1 = Val_1 + 1 Val_2 = Val_1 + 1 Val_3 = Val_2 + 1 Val_4 = Val_3 + 1 Val_5 = Val_4 + 1 End If End If End If End If End If Result(q) = Val_1 & "," & Val_2 & "," & Val_3 & "," & Val_4 & "," & Val_5 Combi = "," & Result(q) If i Mod 60536 = 0 Then Range(Cells(2, Col), Cells(60537, Col)) = Application.WorksheetFunction.Transpose(Result) Col = Col + 1 Erase Result ReDim Result(q) As String End If If q = 60536 Then Cells(2, Col - 1) = Right(Deb_Combi, Len(Deb_Combi) - 1) q = 1 Else q = q + 1 End If Next i Range("A1").Value = "Combinaciones de los números del sorteo ""Etoiles""" Range("F1").Value = "Combinaciones del sorteo de los 5 números" MsgBox "Búsqueda terminada, tiempo de ejecución:" & Timer - Deb & "Sec" End Sub Sub Encontrar_combinaciones_2_Etoiles() Dim Lig As Long, Col As Long, i As Long Dim Val_1 As Long, Val_2 As Long Dim Combi Application.ScreenUpdating = False 'buscar combinaciones con 5 valores Combi = "_1_2" Lig = 2 Col = 1 Cells(1, Col) = Combi ReDim Result(66) As String For i = 1 To 65 'Número máximo de combinaciones de 2 sorteos sobre 12 -1 Combi = Split(Combi, "_") Val_1 = Combi(1) * 1 Val_2 = Combi(2) * 1 If Val_2 < 12 Then Val_2 = Val_2 + 1 Else If Val_1 < 11 Then Val_1 = Val_1 + 1 Val_2 = Val_1 + 1 End If End If Lig = Lig + 1 Result(i) = Val_1 & "_" & Val_2 Combi = "_" & Result(i) Next i Range(Cells(2, Col), Cells(667, Col)) = Application.WorksheetFunction.Transpose(Result) Cells(2, Col) = "1_2" End Sub
El archivo (haga clic en el botón para generar las combinaciones)
https://mon-partage.fr/f/dj3OliwK/
Para obtener la lista de todas las combinaciones posibles (sorteo 5 números + sorteo estrellas) que son 139 838 160 combinaciones, hay que añadir a cada número de 5 cifras cada uno de los 66 valores de los números estrella. (Si realmente es lo que quieren hacer)
Atentamente.
Pero no tiene ningún interés porque es inutilizable.
eric
Solo tengo una idea en la cabeza y me gustaría intentar analizar un poco más, no significa que esté en camino hacia el análisis perfecto que me dará los números ganadores. Como se dice, el azar no tiene memoria. Sin embargo, cuando tengo una idea, me gusta intentar hasta el final :)
No importa, encontraré otro medio. Gracias de todas formas.
Pierre
¿Te imaginas leer 16384 columnas por 1000000 filas, y eso en varias hojas?
Porque ahí no hay manera de filtrar sin construir además las herramientas necesarias...