0103;0220;4000;0004;1111;0022;0310;1210...etc

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 !

olibelle0101

XLDnaute Occasionnel
Bien le bonjour à tous

Cette série est un peu bizzare, mais c'est un probleme que j'aimerai résoudre.
J'aurai combien de serie de 4 chiffres qui feront un total de 4 ???
Je voudrai retrouver cette série en comptant le zéro devant aussi et combien il y en aurait.😕

0103;0220;4000;0004;1111;0022;0310;1210...etc

Y'aurait-il une formule qui puissent mettre ces séries de nombres sur une ligne ???
Je vous remerçie de vos solutions.
A+
 
Re : 0103;0220;4000;0004;1111;0022;0310;1210...etc

Bonsoir,

avec ce code, tu as toutes les combinaisons... (soit 35)

Code:
Sub nb()
Range(Columns(1), Columns(3)).ClearContents
m = 1
For i = 0 To 9
    For j = 0 To 9
        For k = 0 To 9
            For l = 0 To 9
                If i + j + k + l = 4 Then
                    Cells(m, 1).Value = i & j & k & l
                    m = m + 1
                End If
            Next l
        Next k
    Next j
Next i
Columns(1).NumberFormat = "0000"
[B1] = "Nombre de combinaisons :"
[C1] = Application.CountA(Columns(1))
Columns(2).EntireColumn.AutoFit
End Sub

fichier exemple :
 

Pièces jointes

Re : 0103;0220;4000;0004;1111;0022;0310;1210...etc

Bonsoir,

Je propose ceci :

Sub Test()
For i = 0 To 4000
If Val(Mid(i, 1, 1)) + Val(Mid(i, 2, 1)) + Val(Mid(i, 3, 1)) + Val(Mid(i, 4, 1)) = 4 Then
Range("A65536").End(xlUp).Offset(1, 0) = "'" & Format(i, "0000")
End If
Next
End Sub
 
Re : 0103;0220;4000;0004;1111;0022;0310;1210...etc

Bonjour à tous

histoire de s'amuser un peu (perso je passerais pas macro 🙂)

m'enfin une tite formule qui malheureusement je n'ai pu améliorer.
en A1 ta ligne

une plage pour une formule matricielle en colonne B avec cette formule qui fait la somme des nombre par groupe de 4 (Formule matricielle)
Code:
=MOD(CNUM(STXT(SUBSTITUE(A1;";";"");(((LIGNE(INDIRECT("1:"&(NBCAR(SUBSTITUE(A1;";";""))/4)))-1)*4)+1);4));10)+MOD(ENT(CNUM(STXT(SUBSTITUE(A1;";";"");(((LIGNE(INDIRECT("1:"&(NBCAR(SUBSTITUE(A1;";";""))/4)))-1)*4)+1);4))/10);10)+MOD(ENT(CNUM(STXT(SUBSTITUE(A1;";";"");(((LIGNE(INDIRECT("1:"&(NBCAR(SUBSTITUE(A1;";";""))/4)))-1)*4)+1);4))/100);10)+MOD(ENT(CNUM(STXT(SUBSTITUE(A1;";";"");(((LIGNE(INDIRECT("1:"&(NBCAR(SUBSTITUE(A1;";";""))/4)))-1)*4)+1);4))/1000);10)
Selectionner la plage B1:B20, B1 activée, faire un copier coller de cette formule dans la barre de formule et valider en appuyant sur Ctrl + Maj + Etrée
ensuite en C1 encore une formule matricielle :
Code:
=SOMME(SI(ESTNUM(B1:B20);SI(B1:B20=4;1;0);0))
 
Re : 0103;0220;4000;0004;1111;0022;0310;1210...etc

Bonsoir à tous,

Entrer en A1 la formule matricielle (validation par Ctrl+Maj+Entrée) suivante, puis tirer vers le bas :

Code:
=TEXTE(PETITE.VALEUR(SI(STXT(LIGNE($1:$4000);1;1)+(0&STXT(LIGNE($1:$4000);2;1))+(0&STXT(LIGNE($1:$4000);3;1))+(0&STXT(LIGNE($1:$4000);4;1))=4;LIGNE($1:$4000);4000);LIGNE());"0000")

Chaque cellule met évidemment un certain temps à se calculer.

Bien noter qu'il ne s'agit là que d'une variante par formule de la solution VBA présentée par Catrice.

A+
 
Re : 0103;0220;4000;0004;1111;0022;0310;1210...etc

Bonsoir,
En reprenant le code de bhbh, une optimisation est possible :
Code:
Sub nb()
Dim m As Long, i As Long, j As Long, k As Long
    Range(Columns(1), Columns(3)).ClearContents
    For i = 0 To 4
        For j = 0 To 4 - i
            For k = 0 To 4 - i - j
                m = m + 1
                Cells(m, 1).Value = i & j & k & 4 - i - j - k
            Next k
        Next j
    Next i
    Columns(1).NumberFormat = "0000"
    [B1] = "Nombre de combinaisons :"
    [C1] = m
    Columns(2).EntireColumn.AutoFit
End Sub
Ainsi, à chaque boucle, une valeur acceptable est produite : il n'y a plus besoin de test If. Tous les résultats sont obtenus en 35 boucles au lieu de 10 000.​
Bonne nuit !
ROGER2327
 
- 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
Retour