"Nombre d'arguments trop important" !

Bonjour à tous,

Bonjour à tous,

merci avant tous, de l'intention que vous porterez à ce message.

Je suis en train de créer un Mastermind sur Excel, liant les fonctions simples et la VBA. J'ai fini de programmer les 2 premiers niveaux (avec 4 et 5 chiffres à deviner). Mais j'ai un problème concernant le niveau difficile (donc 6 chiffres à deviner).

Voici la formule pour "les chiffres à modifier" (ceux qui apparaissent dans la combinaison mais pas à la bonne place) :
=SI(C3="";"";SI(D3="";"";SI(E3="";"";SI(F3="";"";SI(G3="";"";SI(H3="";"";SI(C3=$C$2;0;SI(C3=$D$2;1;SI(C3=$E$2;1;SI(C3=$F$2;1;SI(C3=$G$2;1;0;SI(C3=$H$2;1))))+SI(D3=$D$2;0;SI(D3=$C$2;1;SI(D3=$E$2;1;SI(D3=$F$2;1;SI(D3=$G$2;1;SI(D3=$H$2;1))))+SI(E3=$E$2;0;SI(E3=$D$2;1;SI(E3=$C$2;1;SI(E3=$F$2;1;SI(E3=$G$2;1;SI(D3=$H$2;1;0))))+SI(F3=$F$2;0;SI(F3=$C$2;1;SI(F3=$D$2;1;SI(F3=$E$2;1;SI(F3=$G$2;1;SI(F3=$H$2;1))))+SI(G3=$G$2;0;SI(G3=$C$2;1;SI(G3=$D$2;1;SI(G3=$E$2;1;SI(G3=$F$2;1;SI(G3=$H$2;1))))+SI(H3=$H$2;0;SI(H3=$C$2;1;SI(H3=$D$2;1;SI(H3=$E$2;1;SI(H3=$F$2;1;SI(H3=$G$2;1))))))))).

Excel m'indique que le nombre d'arguments est trop important. J'ai tenté alors cette formule, le problème reste identique... :

=SI(C3;D3;E3;F3;G3;H3="";"";SI(C3=$C$2;0............

Que faire ? Je ne vois comment la simplifier d'avantage, ni comment créer une VBA à partir de ça.

Merci beaucoup de vos pistes de réponses.

Clémence.

5 réponses

  1. vous pouvez peut etre jouer avec les ET OU:
    =si(et(C3="";E3="";F3="");"";si(et(..... ca permet de regrouper les conditions communes
    1
    1. Contributeur
      Bonjour,

      nombre bien placés :
      =SOMMEPROD(--(A2:F2=A1:F1)) 

      bon mais mal placés :
      =SOMMEPROD(NB.SI(A1:F1;A2:F2)) - 'bien placés'
      Si tu veux leur position enlever le sommeprod et valider en matriciel sur autant de cellules que nécessaire (6 ici)

      cjoint en panne, pas de fichier déposé pour l'instant...
      eric
      1
      1. Contributeur
        Bonjour Clémence.

        Pour répondre précisément à ta demande, et aller dans le sens de fabien25000, et sans préjuger de l'intérêt des formules proposées par Éric, que je salue ici, ta formule
        =SI(C3="";"";SI(D3="";"";SI(E3="";"";SI(F3="";"";SI(G3="";"";SI(H3="";"";SI(C3=$C$2;0;SI(C3=$D$2;1;SI(C3=$E$2;1;SI(C3=$F$2;1;SI(C3=$G$2;1;0;SI(C3=$H$2;1))))+SI(D3=$D$2;0;SI(D3=$C$2;1;SI(D3=$E$2;1;SI(D3=$F$2;1;SI(D3=$G$2;1;SI(D3=$H$2;1))))+SI(E3=$E$2;0;SI(E3=$D$2;1;SI(E3=$C$2;1;SI(E3=$F$2;1;SI(E3=$G$2;1;SI(D3=$H$2;1;0))))+SI(F3=$F$2;0;SI(F3=$C$2;1;SI(F3=$D$2;1;SI(F3=$E$2;1;SI(F3=$G$2;1;SI(F3=$H$2;1))))+SI(G3=$G$2;0;SI(G3=$C$2;1;SI(G3=$D$2;1;SI(G3=$E$2;1;SI(G3=$F$2;1;SI(G3=$H$2;1))))+SI(H3=$H$2;0;SI(H3=$C$2;1;SI(H3=$D$2;1;SI(H3=$E$2;1;SI(H3=$F$2;1;SI(H3=$G$2;1)))))))))
        peut commencer par
        =SI(OU(C3="";D3="";E3="";F3="";G3="";H3="");"";
        mais le reste contient plusieurs erreurs :
        SI(C3=$C$2;0;SI(C3=$D$2;1;SI(C3=$E$2;1;SI(C3=$F$2;1;SI(C3=$G$2;1
         _ 
        ;SI(C3=$H$2;1
        ;0
        ))))
        ))
        +
        SI(D3=$D$2;0;SI(D3=$C$2;1;SI(D3=$E$2;1;SI(D3=$F$2;1;SI(D3=$G$2;1;SI(D3=$H$2;1
        ;0
        ))))
        ))
        +
        SI(E3=$E$2;0;SI(E3=$D$2;1;SI(E3=$C$2;1;SI(E3=$F$2;1;SI(E3=$G$2;1;SI(D3=$H$2;1
        ;0
        ))))
        ))
        +
        SI(F3=$F$2;0;SI(F3=$C$2;1;SI(F3=$D$2;1;SI(F3=$E$2;1;SI(F3=$G$2;1;SI(F3=$H$2;1
        ;0
        ))))
        ))
        +
        SI(G3=$G$2;0;SI(G3=$C$2;1;SI(G3=$D$2;1;SI(G3=$E$2;1;SI(G3=$F$2;1;SI(G3=$H$2;1
        ;0
        ))))
        ))
        +
        SI(H3=$H$2;0;SI(H3=$C$2;1;SI(H3=$D$2;1;SI(H3=$E$2;1;SI(H3=$F$2;1;SI(H3=$G$2;1
        ;0
        )))))))
        0
        1. Bonjour,

          selon vos conseils, j'ai essayé plusieurs solutions, dont :

          =SI(NB.SI(C3 :H3 ;"")=6;"";ESTNUM(EQUIV(C3 ;$D$2:$H$2;0))*(1-(C3=$C$2));ESTNUM(EQUIV(D3;$E$2:$H$2;0))*(1-(D3=$D$2));ESTNUM(EQUIV(E3;$F$2:$H$2;0))*(1-(E3=$E$2));ESTNUM(EQUIV(F3;$G$2:$H$2;0))*(1-(F3=$F$2));ESTNUM(EQUIV(G3;$F$2:$H$2;0))*(1-(G3=$G$2));ESTNUM(EQUIV(H3;$C$2:$H$2;0))*(1-(H3=$H$2)))

          =SI(OU(C3="";D3="";E3="";F3="";G3="";H3="");"";SI(C3=$C$2;0;SI(C3=$D$2;1;SI(C3=$E$2;1;SI(C3=$F$2;1;SI(C3=$G$2;1;0;SI(C3=$H$2;1;0))))))+SI(D3=$D$2;0;SI(D3=$C$2;1;SI(D3=$E$2;1;SI(D3=$F$2;1;SI(D3=$G$2;1;SI(D3=$H$2;1;0))))))+SI(E3=$E$2;0;SI(E3=$D$2;1;SI(E3=$C$2;1;SI(E3=$F$2;1;SI(E3=$G$2;1;SI(D3=$H$2;1;0))))))+SI(F3=$F$2;0;SI(F3=$C$2;1;SI(F3=$D$2;1;SI(F3=$E$2;1;SI(F3=$G$2;1;SI(F3=$H$2;1;0))))))+SI(G3=$G$2;0;SI(G3=$C$2;1;SI(G3=$D$2;1;SI(G3=$E$2;1;SI(G3=$F$2;1;SI(G3=$H$2;1;0))))))+SI(H3=$H$2;0;SI(H3=$C$2;1;SI(H3=$D$2;1;SI(H3=$E$2;1;SI(H3=$F$2;1;SI(H3=$G$2;1;0)))))))

          L'une comme l'autre amène au même message.
          Un grand merci de vos réponse, même si la solution n'est pas encore trouvé, ça élargit mon champ d'horizon.

          J'ai mis en pièce jointe le fichier en ébauche. Cela concerne la feuille difficile pour K2.

          Cordialement.

          Clémence
          0
          1. @eriiicAlors, ça fonctionne très bien pour les nombres bien placé, je fais changé la formule que j'avais !
            Mais pas pour la deuxième partie de tableau... Je ne parviens pas à envoyer le fichier !
            Merci de vos réponses
            0
          2. Contributeur
            @clemsoo15130
             1) Tu vas dans https://www.cjoint.com/ 
            2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
            3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
            4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
            5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
            tu fais "Coller".
            =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
            0
        2. Contributeur
          0
          1. Contributeur
            Il n' a pas pire aveugle que celui qui ne veut voir.
            0
          2. Contributeur
            Vu que tu n'as fait aucun commentaire sur ma proposition aucune raison que j'ouvre ton fichier.
            Continue avec ta formule à 566 caractères puisque celle à 27 n'a pas l'air de t'intéresser.
            eric
            0
          3. Comme je l'ai dit, je suis débutante, et n'ai pas compris de quoi vous vouliez parlé. Merci quand même.
            0