Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • 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.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…