Je cherche l'impossible !

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

F

fort

Guest
Bonjour,

Je cherche une façon de faire dans excel qui me donnerait les résultats suivant:


J'ai 30 numéros varié que je dois changer au 7 jours. Avec ces 30 numéros, j'ai besoin d'avoir toute les combinaisons possible de 7 numéros différent.

Ex:

30 numéros pour avoir la totalité des combinaisons possibles de 7 numéros différents.

Est-ce possible ?

Actuellement, je fait cela à la main, mais J'ai une grand marge d'erreur. Mais tout de même, cela me rapporte entre 2 300$ et 7000$ par mois. Celui qui me trouve la solution , je lui donne la formule des 30 numéros durant un an. Cela pourrait lui rapporter au moins 30 000$ dans l'année.
 
Re : Je cherche l'impossible !

Bonsour® mapomme

ne marche que pour Excel 2007 +

2 035 800 ==> 204 tableaux de 8 colonnes de 10000 lignes
1 629 colonnes



il faut exploiter les 65000 lignes de Excel 2003

2 035 800 ==> 31 tableaux de 8 colonnes de 65000 lignes
251 colonnes
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    19 KB · Affichages: 75
  • Capture.JPG
    Capture.JPG
    19 KB · Affichages: 71
  • Capture.JPG
    Capture.JPG
    19 KB · Affichages: 89
Re : Je cherche l'impossible !

Bonjour Modeste geedee, le forum,

Merci Modeste geedee 🙂

La gestion des colonnes est déjà comprise dans la version précédente (.xlsm). Il y a un paramètre pour définir la hauteur utilisable en nombre de cellules. Pour excel 2003 mettre Const NBlignes = 65520

Mais en 2003, ce qui ne va pas, c'est la détection de la couleur du carré en haut à droite pour compter le nombre de cellules à prendre en considération. J'ai donc redéfini la couleur avec colorindex au lieu de color = RGB.... Sinon rien d'autre n'est modifié.

En remplissant le carré par ligne (voir fichier), chaque septuplet est automatiquement trié en ordre croissant (c'est dèjà vrai pour la précédente version xlsm)

Je note qu'avec XP + Excel 2003, la macro est presque deux fois plus rapide qu'avec Win7 + Excel 2010.
 

Pièces jointes

Dernière édition:
Re : Je cherche l'impossible !

Allo Pomme

J'Ai fait des tests avec ton fichier et cela fonctionne tres bien.. Gros Merci pour ton génie..
Sauf que... la formule SVO que j'utilise pour le banco est concu avec une grille de 5 numéros à l'horizontal et 6 à la verticale. ( 5 x 6 =30 ) c,est le point fort de cette formule pour déterminé les numéros qui vont sortir et empoché des $$$. Si tu es du Canada, et idéalement du Québec, tu pourrais toi aussi te remplir les poches avec ça. Il ma fera plaisir de t'envoyer le fichier qui es sur Excel.

Pour en revenir au sujet, le fichier que tu m'a fait la grille est de 6 numéros a l'horizontal et de 5 à la vertical. Est ce trop complexe et ardu d'inversé ? Pour le reste, tout est parfait.... Je t'en doit une... en attendant, je te paye une bonne mière virtuelle.

Merci
 
Re : Je cherche l'impossible !

Bonjour à tous

Solution Dynamique du nombre d'éléments et du nombre d'éléments choisi.
J'ai roulé 7/30 en 170 secondes.
Et 5/40 en 25 secondes.

Pour ceux que ca intéresse.
Le code est court mais je crois que niveau performance, on peut faire mieux.
 

Pièces jointes

Re : Je cherche l'impossible !

Allo M. Victor

Oui le banco au Québec permet des mises de 2 à 10 numéros sur 70. Mais il y a une facilité pour obtenir 7 numéro grâce à un système appelé SVO qui provient du Portugal. Depuis presque 6 mois que je l'utilise et il m'a parmis de gagné à ce jours 128 000.00 $ et des poussières. Le système SVO est monté sur Excel mais seulement manuel. Je peu l'envoyer à qui le veut pour le rendre plus automatique, donc, moins d'ouvrage à travailler. Il y a en France je crois quelques choses qui ressemble au Banco du Québec. Sans doute qui vous serait profitable. Le fichier est en vente sur le net, mais je peu vous le fournir gratos si vous le rendez plus automatique. Il y a un fichier avec 12 onglets. Il faut entré le dernier tirage pour le rendre à jour. mais il faut le faire sur chaque onglet.... Merci à tous ici... pour vos talents d'expert....
 
Re : Je cherche l'impossible !

Bonsoir,

J'ai trouver ce bout de code qui n'est pas de moi mais qui a l'air interressant, je n'ai pas eu le temps de tous comprendre chez moi j'ai un depassement de capacité. mais il permet de faire les Combinaisons ou Permutations.

Voici le code :

VB:
'Attribute VB_Name = "CombinaisonsPermutations"

'Voici une diabolique procédure pour mettre
'définitivement fin aux questions concernant les
'listes de combinaisons ou de permutations
'de R éléments choisis parmi N.
'Pour l'utiliser :
'  1. En A1, écrire c ou p ; (Combinaison ou Permutation)
'  2. En A2, écrire la valeur de R ;
'  3. Sous A2, écrire la liste des N éléments ;
'  4. Sélectionner A1 et activer la procédure.

'Exemple:
'A1 c
'A2 3
'A3 1
'A4 2
'A5 Excel
'A6 4
'A7 *
'A8 6
  
'La procédure donne alors la liste de toutes les combinaisons
'possibles de 3 éléments choisis parmi 6.

'J'aimerais bien vous dire qu'elle est de moi, mais ce n'est pas les cas.
'Tout ce que je sais d'elle, c'est que son auteure se nomme Myrna Larson.
'Serge Garneau


Option Explicit

Dim vAllItems As Variant
Dim Buffer() As String
Dim BufferPtr As Long
Dim Results As Worksheet

Sub ListPermutations()
  Dim Rng As Range
  Dim PopSize As Integer
  Dim SetSize As Integer
  Dim Which As String
  Dim N As Double
  Const BufferSize As Long = 4096

  Set Rng = Selection.Columns(1).Cells
  If Rng.Cells.Count = 1 Then
    Set Rng = Range(Rng, Rng.End(xlDown))
  End If

  PopSize = Rng.Cells.Count - 2
  If PopSize < 2 Then GoTo DataError

  SetSize = Rng.Cells(2).Value
  If SetSize > PopSize Then GoTo DataError

  Which = UCase$(Rng.Cells(1).Value)
  Select Case Which
  Case "C"
    N = Application.WorksheetFunction.Combin(PopSize, SetSize)
  Case "P"
    N = Application.WorksheetFunction.Permut(PopSize, SetSize)
  Case Else
    GoTo DataError
  End Select
  If N > Cells.Count Then GoTo DataError

  Application.ScreenUpdating = False

  Set Results = Worksheets.Add

  vAllItems = Rng.Offset(2, 0).Resize(PopSize).Value
  ReDim Buffer(1 To BufferSize) As String
  BufferPtr = 0

  If Which = "C" Then
    AddCombination PopSize, SetSize
  Else
    AddPermutation PopSize, SetSize
  End If
  vAllItems = 0

  Application.ScreenUpdating = True
  Exit Sub

DataError:
  If N = 0 Then
    Which = "Enter your data in a vertical range of at least 4 cells. " _
      & String$(2, 10) _
      & "Top cell must contain the letter C or P, 2nd cell is the number" _
      & "of items in a subset, the cells below are the values from which" _
      & "the subset is to be chosen."
  Else
    Which = "This requires " & Format$(N, "#,##0") & _
      " cells, more than are available on the worksheet!"
  End If
  MsgBox Which, vbOKOnly, "DATA ERROR"
  Exit Sub
End Sub

Private Sub AddPermutation(Optional PopSize As Integer = 0, _
  Optional SetSize As Integer = 0, _
  Optional NextMember As Integer = 0)

  Static iPopSize As Integer
  Static iSetSize As Integer
  Static SetMembers() As Integer
  Static Used() As Integer
  Dim i As Integer

  If PopSize <> 0 Then
    iPopSize = PopSize
    iSetSize = SetSize
    ReDim SetMembers(1 To iSetSize) As Integer
    ReDim Used(1 To iPopSize) As Integer
    NextMember = 1
  End If

  For i = 1 To iPopSize
    If Used(i) = 0 Then
      SetMembers(NextMember) = i
      If NextMember <> iSetSize Then
        Used(i) = True
        AddPermutation , , NextMember + 1
        Used(i) = False
      Else
        SavePermutation SetMembers()
      End If
    End If
  Next i

  If NextMember = 1 Then
    SavePermutation SetMembers(), True
    Erase SetMembers
    Erase Used
  End If

End Sub  'AddPermutation

Private Sub AddCombination(Optional PopSize As Integer = 0, _
  Optional SetSize As Integer = 0, _
  Optional NextMember As Integer = 0, _
  Optional NextItem As Integer = 0)

  Static iPopSize As Integer
  Static iSetSize As Integer
  Static SetMembers() As Integer
  Dim i As Integer

  If PopSize <> 0 Then
    iPopSize = PopSize
    iSetSize = SetSize
    ReDim SetMembers(1 To iSetSize) As Integer
    NextMember = 1
    NextItem = 1
  End If

  For i = NextItem To iPopSize
    SetMembers(NextMember) = i
    If NextMember <> iSetSize Then
      AddCombination , , NextMember + 1, i + 1
    Else
      SavePermutation SetMembers()
    End If
  Next i

  If NextMember = 1 Then
    SavePermutation SetMembers(), True
    Erase SetMembers
  End If

End Sub  'AddCombination

Private Sub SavePermutation(ItemsChosen() As Integer, _
  Optional FlushBuffer As Boolean = False)

  Dim i As Integer, sValue As String
  Static RowNum As Long, ColNum As Long

  If RowNum = 0 Then RowNum = 1
  If ColNum = 0 Then ColNum = 1

  If FlushBuffer = True Or BufferPtr = UBound(Buffer()) Then
    If BufferPtr > 0 Then
      If (RowNum + BufferPtr - 1) > Rows.Count Then
        RowNum = 1
        ColNum = ColNum + 1
        If ColNum > 256 Then Exit Sub
      End If

      Results.Cells(RowNum, ColNum).Resize(BufferPtr, 1).Value _
        = Application.WorksheetFunction.Transpose(Buffer())
      RowNum = RowNum + BufferPtr
    End If

    BufferPtr = 0
    If FlushBuffer = True Then
      Erase Buffer
      RowNum = 0
      ColNum = 0
      Exit Sub
    Else
      ReDim Buffer(1 To UBound(Buffer))
    End If

  End If

  'construct the next set
  For i = 1 To UBound(ItemsChosen)
    sValue = sValue & ", " & vAllItems(ItemsChosen(i), 1)
  Next i

  'and save it in the buffer
  BufferPtr = BufferPtr + 1
  Buffer(BufferPtr) = Mid$(sValue, 3)
End Sub  'SavePermutation

Laurent
 
Re : Je cherche l'impossible !

Bonsoir fort,

le fichier que tu m'a fait la grille est de 6 numéros a l'horizontal et de 5 à la vertical. Est ce trop complexe et ardu d'inversé ?

Voir les fichiers joints. J'ai modifié un peu les codes. Les codes des deux versions sont strictement identiques.
 

Pièces jointes

Re : Je cherche l'impossible !

Allo M. Victor

Oui le banco au Québec permet des mises de 2 à 10 numéros sur 70. Mais il y a une facilité pour obtenir 7 numéro grâce à un système appelé SVO qui provient du Portugal. Depuis presque 6 mois que je l'utilise et il m'a parmis de gagné à ce jours 128 000.00 $ et des poussières. Le système SVO est monté sur Excel mais seulement manuel. Je peu l'envoyer à qui le veut pour le rendre plus automatique, donc, moins d'ouvrage à travailler. Il y a en France je crois quelques choses qui ressemble au Banco du Québec. Sans doute qui vous serait profitable. Le fichier est en vente sur le net, mais je peu vous le fournir gratos si vous le rendez plus automatique. Il y a un fichier avec 12 onglets. Il faut entré le dernier tirage pour le rendre à jour. mais il faut le faire sur chaque onglet.... Merci à tous ici... pour vos talents d'expert....

je suis curieux
Je suis du genre anti-loto

Envoie le moi je vais l'essayer.
 
Re : Je cherche l'impossible !

Bonsoir laurent950,

Merci pour le beau code que tu as trouvé et mis en ligne. Il est paramétrable et rapide.

Pour le dépassement de capacité:

C'est à la ligne If N > Cells.Count Then GoTo DataError que cela se produit et plus particulièrement à l'évaluation de Cells.Count.

Le programme a sans doute été écrit pour une version antérieure à 2007. Pour une version ultérieure, le nombre de cellules d'une feuille dépasse la capacité d'un entier de type INTEGER et même la capacité d'un entier LONG (ma version 32 bits)

En remplaçant l'instruction If N > Cells.Count Then GoTo DataError par If N > CDbl(Rows.Count) * Columns.Count Then GoTo DataError, la macro poursuit son exécution.
 

Pièces jointes

Dernière édition:
Re : Je cherche l'impossible !

Allo M, Laurent

Merci pour l'effort... mais je suis d'une nullité absolu avec ce genre de code.. c'est comme du chinois pour moi mais je ne doute pas de son efficacité.

Merci
 
- 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
  • Question Question
XL 2013 Planning
Réponses
3
Affichages
854
R
Réponses
2
Affichages
533
M
Réponses
1
Affichages
725
C
Réponses
6
Affichages
1 K
chrisparis11
C
Retour