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

M

mamat_555

Guest
Je suis un utilisateur très assidu de ce forum mais aujourd'hui je suis un peu bloqué 🙁 , je m'explique: je cherche à connaitre toutes les séquences de chiffres issu de 4 paramètres A,B,C,D pouvant chacun prendre 5 valeurs 0,1,4,7,10 😕 j'ai bien essayé les diverses macro proposées mais en vain. (Il me faudrait une section de 4 colonnes)

Merci d'avance pour toute l'aide comme vous m'avez déjà apporté.

ps: dans l'autre sens avec votre utilitaire pour plans d'expérience ça marche super 😎
 
Re : Combinaisons

Si G bi1 compris, voilà le code que j'utiliserais :
Code:
Sub Combinaison()
Dim A, B, C, D
For A = 0 To 10
    Select Case A
        Case 0, 1, 4, 7, 10
            For B = 0 To 10
                Select Case B
                    Case 0, 1, 4, 7, 10
                        For C = 0 To 10
                            Select Case C
                                Case 0, 1, 4, 7, 10
                                    For D = 0 To 10
                                        Select Case D
                                            Case 0, 1, 4, 7, 10
'Résultat combinaison : A & B & C & D
                                        End Select 'Case D
                                    Next D
                            End Select 'Case C
                        Next C
                End Select 'Case B
            Next B
    End Select 'Case A
Next A
End Sub
 
Re : Combinaisons

Bonjour,

Il est dommage que vous ne précisiez pas si pour vous, par exemple, la combinaison 10, 10, 1, 4 est possible. J'ai considéré que cette séquences et tous les cas similaires devaient être considérés et si la réponse est oui si les combinaisons 10, 1, 4, 7 et 1, 4, 7, 10 doivent etre considérées comme étant la même.

J'ai donc appliqué 'séquences' littéralement, toutes les séquences sont là.

Lancer la sub CbAbcLaunch. Vous pouvez y modifier tous les paramètres : Le nombre de paramètres et le nombre de valeurs:
t(0 to 4) -> t(0 to nombre de valeurs - 1)
Call CbAbc(4, 5, t())->Call CbAbc(nombre de paramètres, nombre de valeurs, t())

La 2ème boucle j dansla sub CbAbc ne sert à rien dans votre exemple, elle servira si les valeurs possibles sont pondérées (ex : 0, 1, 4, 4, 7,7,7). Elle eliminera alors les doublons. La liste est construite sur la feuille active. Fichier joint.

Cordialement

KD

VB:
Option Explicit

Sub CbAbcLaunch()
Dim t(0 To 4) As Long
t(0) = 0: t(1) = 1: t(2) = 4: t(3) = 7: t(4) = 10
    Call CbAbc(4, 5, t())
End Sub
Sub CbAbc(c As Byte, v As Integer, t() As Long)
Dim rw As Long, i As Long, j As Long, A As Integer

    rw = v ^ c
    
    For i = 1 To rw
        For j = 1 To c
            Cells(i, j) = t(Int((i - 1) / v ^ (j - 1)) Mod v)
        Next j
        For j = 1 To c
            Cells(i, c + 1) = Cells(i, c + 1) & "_" & Cells(i, j)
        Next j
    Next i

    For i = rw To 2 Step -1
        If WorksheetFunction.CountIf(Range(Cells(1, c + 1), Cells(i - 1, c + 1)), Cells(i, c + 1)) > 0 Then Rows(i).Delete Shift:=xlUp
    Next i
   
   Columns

Edit : si le cas plusieurs valeurs identiques ne peut se produire supprimer les blocs :

VB:
For j = 1 To c
            Cells(i, c + 1) = Cells(i, c + 1) & "_" & Cells(i, j)
        Next j
et
VB:
For i = rw To 2 Step -1
        If WorksheetFunction.CountIf(Range(Cells(1, c + 1), Cells(i - 1, c + 1)), Cells(i, c + 1)) > 0 Then Rows(i).Delete Shift:=xlUp
    Next i
	Columns(c + 1).ClearContents
 

Pièces jointes

Dernière édition:
- 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