• 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
Bonjour,

Je voudrais générer des combinaisons de 5 unités de 00000 à 99999 où l'ordre des unités n'a pas d'importance.
Ex: 0 0 0 0 1 suffira (inutile d'inscrire 01000 ou 10000 ou 00100...)
Ma boucle a 5 for me génère justement ces combinaisons inutiles (100000 !)
Merci de votre astuce


Bonne soirée
 
Re : VBA- Boucle

Bonjour à tous,

Peux-tu essayer :

VB:
Option Explicit


Sub Combinaions_Uniques()
    Dim h As Long, i As Long, j As Long, k As Long, l As Long
    Dim m As Long, n As Long, x As Long
    Range("A1:J1000").ClearContents
    For h = 0 To 9
        n = n + 1
        For i = h To 9
            For j = i To 9
                For k = j To 9
                    For l = k To 9
                        x = h
                        x = 10 * x + i
                        x = 10 * x + j
                        x = 10 * x + k
                        x = 10 * x + l
                        m = m + 1
                        With Cells(m, n)
                            .Value = x
                            .NumberFormat = "00000"
                        End With
                    Next l
                Next k
            Next j
        Next i
        m = 0
    Next h
    MsgBox "Opération terminée.", , "Combinaisons"
    Range("M1").Select
End Sub

A + à tous
 
Dernière édition:
Re : VBA- Boucle

Re,

Suite à la création du fichier, je coince pour la même raison pour le comptage.
J'ai essayé avec 5 nb.si mais c'est pas évident! C'est peut-être simple mais je ne trouve pas la solution?
Dans l'exemple j'ai pris l'exemple de 00009 compté 3 fois dans Données.
Merci ( quand tu as un moment de libre, rien ne presse)
 

Pièces jointes

Re : VBA- Boucle

Bonjour à tous,

Je ne comprends pas ta demande.

Edition : Peut-être en passant les valeurs en format texte...

VB:
Option Explicit


Sub Combinaions_Uniques()
    Dim h As Long, i As Long, j As Long, k As Long, l As Long
    Dim m As Long, n As Long, x As Long
    Range("A1:J1000").ClearContents
    For h = 0 To 9
        n = n + 1
        For i = h To 9
            For j = i To 9
                For k = j To 9
                    For l = k To 9
                        x = h
                        x = 10 * x + i
                        x = 10 * x + j
                        x = 10 * x + k
                        x = 10 * x + l
                        m = m + 1
                        Cells(m, n).Value = Format(x, "0 0 0 0 0")
                    Next l
                Next k
            Next j
        Next i
        m = 0
    Next h
    MsgBox "Opération terminée.", , "Combinaisons"
    Range("L1").Select
End Sub


A + à tous
 
Dernière édition:
Re : VBA- Boucle

Bonjour JJ1

Salut JC 🙂 🙂

Pour rassurer JJ
Fichier ou je trouve les mêmes combinaisons que JC par une autre methode
Une formule personnalisée pour trouver le nb de 'presques identiques'
 

Pièces jointes

Re : VBA- Boucle

Bonjour à tous,
Salut mon bon PJ,

Joli le code pour les "presque identiques"
Comme souvent avec notre ami JJ1 les demandes sont dures à comprendre... Il est dans sa démarche.. Pas nous (et surtout moi).

Bisous à Mamie Verveine
A++

A + à tous
 
Re : VBA- Boucle

Bonjour Jean Claude, Pierre Jean,
Pour vous rassurer,c'est exactement ça. Merci.
Explication: le code de Jean Claude donnait les combinaisons sans doublon "presque identiques". Mes données contenaient des "presque identiques" donc difficile de compter.

Avec vos solutions, c'est parfait, comme d'hab et pardon si je ne suis pas assez explicite.

Bonne journée

ps: je ne connais pas Mamie Verveine (?) , mais je me permets de lui faire un bisou !!!!!
 
Re : VBA- Boucle

Bonsoir Pierrejean,le Forum
J'ai voulu rajouter des lignes à ta fonction (C2:C560) et je me retrouve avec des erreurs Valeurs quand je tire la formule vers le bas?
Peux-tu me dire où se trouve mon erreur?
merci à toi (je joins l'exemple)
Bonne soirée
 

Pièces jointes

- 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.
Retour