Transformer un calcul en macro

Résolu

bonjour a tous

est il possible de transformer le calcul qui est dans le fichier ci dessous e macro

il faut remettre egal...la reponse doit se dérouler en colonne h3:h10000

 https://www.cjoint.com/c/OBemVGpu8uD

merci d'avance


vous êtes super!
merci à tous:h

5 réponses

Résumé de la discussion

Le calcul à effectuer par la macro doit s’appliquer à la plage H3:H10000, soit par l’insertion de formules soit par l’écriture des résultats en valeurs. Deux macros sont proposées : l’une écrit une longue formule dans H3 et remplit ensuite vers le bas, l’autre produit les mêmes résultats puis convertit les formules en valeurs. Une erreur est apparue dans le dernier NB.SI : NB.SI(EH3"">0"") au lieu de NB.SI(EH3;"">0""), et la correction porte sur l’utilisation du séparateur et des guillemets. Le fil aborde également la différence entre obtenir le résultat sous forme de formule dans H3:H10000 et obtenir des valeurs directement, avec les mécanismes FillDown et la conversion finale.

Bobot (l’IA à votre service)
  1. excuse moi c'est tout bon un grand temps de gagner et encore merci

    0
    1. ca ne met rien!

      ai essayer...

      merci


      0
      1. Je ne peux pas vérifier, je n'ai pas les données

        Daniel

        0
    2. ok mais est il possible de mettre "1" dans "h" si bon


      0
      1. C'est la seconde macro.

        Daniel

        0
    3. ... pour une formule :

      Sub test2()
      Range("H3").FormulaLocal = "=NB.SI($AU$3:$BV$3;J3)*NB.SI(AB3;"">0"")*NB.SI(AB3;""<5"")*NB.SI($AM$4:$CL$4;F3)*NB.SI($N$5;""<> ""&A3)*NB.SI($N$4;""<> ""&A3)*NB.SI($N$6;""<> ""&A3)*NB.SI($N$7;""<> ""&A3)" & _
      "*NB.SI($N$8;""<> ""&A3)*NB.SI($O$4;""<> ""&B3)*NB.SI($O$5;""<> ""&B3)*NB.SI($O$6;""<> ""&B3)*NB.SI($O$7;""<> ""&B3)*NB.SI($O$8;""<> ""&B3)*NB.SI($P$4;""<> ""&C3)*NB.SI($P$5;""<> ""&C3)*NB.SI($P$6;""<> ""&C3)" & _
      "*NB.SI($P$7;""<> ""&C3)*NB.SI($P$8;""<> ""&C3)*NB.SI($Q$4;""<> ""&D3)*NB.SI($Q$5;""<> ""&D3)*NB.SI($Q$6;""<> ""&D3)*NB.SI($Q$7;""<> ""&D3)*NB.SI($R$4;""<> ""&E3)*NB.SI($R$5;""<> ""&E3)*NB.SI($R$6;""<> ""&E3)*NB.SI($R$7;""<> ""&E3)*NB.SI($R$8;""<> ""&E3)"
      Range("H3:H10000").FillDown
      End Sub
      

      Pour une valeur :

      Sub test2()
      Range("H3").FormulaLocal = "=NB.SI($AU$3:$BV$3;J3)*NB.SI(AB3;"">0"")*NB.SI(AB3;""<5"")*NB.SI($AM$4:$CL$4;F3)*NB.SI($N$5;""<> ""&A3)*NB.SI($N$4;""<> ""&A3)*NB.SI($N$6;""<> ""&A3)*NB.SI($N$7;""<> ""&A3)" & _
      "*NB.SI($N$8;""<> ""&A3)*NB.SI($O$4;""<> ""&B3)*NB.SI($O$5;""<> ""&B3)*NB.SI($O$6;""<> ""&B3)*NB.SI($O$7;""<> ""&B3)*NB.SI($O$8;""<> ""&B3)*NB.SI($P$4;""<> ""&C3)*NB.SI($P$5;""<> ""&C3)*NB.SI($P$6;""<> ""&C3)" & _
      "*NB.SI($P$7;""<> ""&C3)*NB.SI($P$8;""<> ""&C3)*NB.SI($Q$4;""<> ""&D3)*NB.SI($Q$5;""<> ""&D3)*NB.SI($Q$6;""<> ""&D3)*NB.SI($Q$7;""<> ""&D3)*NB.SI($R$4;""<> ""&E3)*NB.SI($R$5;""<> ""&E3)*NB.SI($R$6;""<> ""&E3)*NB.SI($R$7;""<> ""&E3)*NB.SI($R$8;""<> ""&E3)"
      Range("H3:H10000").FillDown
      Range("H3:H10000").Value = Range("H3:H10000").Value
      End Sub
      

      Daniel


      1
      1. re

        c'est quoi la différence entre les 2

        0
      2. @jack2125

        Dans le premier cas, il y a  des formules dans les cellules et dans le second, le résultat des formules.

        Daniel

        0
      3. BJR

        J'ai voulu rajouter cette ligne mais le débogueur me bloque? erreur d'execution 1003

        "*NB.SI($AW3;""=0"")*NB.SI(AX3;""=0"")*NB.SI(AY3;""=0"")*NB.SI(BA3;""=0"")*NB.SI(BB3;""=0"")*NB.SI(BC3;""=0"")*NB.SI(BD3;""=0"")*NB.SI(BE3;""=0"")*NB.SI(BF3;""=0"")*NB.SI(BG3;""=0"")*NB.SI(BH3;""=0"")*NB.SI(BI3;""=0"")*NB.SI(BJ3;""=0"")*NB.SI(BK3;""=0"")*NB.SI(BL3;""=0"")*NB.SI(BM3;""=0"")*NB.SI(BN3;""=0"")*NB.SI(AI3;""=0"")*NB.SI(G3;"">0"")*NB.SI(G3;""<5"")*NB.SI(Y3;"">0"")*NB.SI(EH3"">0"")"

        l'origine était

        *NB.SI.ENS($AW3;"=0";AX3;"=0";AY3;"=0";BA3;"=0";BB3;"=0";BC3;"=0";BD3;"=0";BE3;"=0";BF3;"=0";BG3;"=0";BH3;"=0";BI3;"=0";BJ3;"=0";BK3;"=0";BL3;"=0";BM3;"=0";BN3;"=0";AI3;"=0";G3;">0";G3;"<5";Y3;">0")

        auquel j'ajoute NB.SI(EH3">0")

        je ne trouve pas le problème

        peux tu m'aider

        merci

        0
      4. @jack2125

        Bonjour,

        L'erreur était dans le dernier NB.SI :

        NB.SI(EH3"">0"")

        au lieu de :

        NB.SI(EH3;"">0"")

        Sub test2()
          Range("H3").FormulaLocal = "=NB.SI($AU$3:$BV$3;J3)*NB.SI(AB3;"">0"")*NB.SI(AB3;""<5"")*NB.SI($AM$4:$CL$4;F3)*NB.SI($N$5;""<> ""&A3)*NB.SI($N$4;""<> ""&A3)*NB.SI($N$6;""<> ""&A3)*NB.SI($N$7;""<> ""&A3)" & _
          "*NB.SI($N$8;""<> ""&A3)*NB.SI($O$4;""<> ""&B3)*NB.SI($O$5;""<> ""&B3)*NB.SI($O$6;""<> ""&B3)*NB.SI($O$7;""<> ""&B3)*NB.SI($O$8;""<> ""&B3)*NB.SI($P$4;""<> ""&C3)*NB.SI($P$5;""<> ""&C3)*NB.SI($P$6;""<> ""&C3)" & _
          "*NB.SI($P$7;""<> ""&C3)*NB.SI($P$8;""<> ""&C3)*NB.SI($Q$4;""<> ""&D3)*NB.SI($Q$5;""<> ""&D3)*NB.SI($Q$6;""<> ""&D3)*NB.SI($Q$7;""<> ""&D3)*NB.SI($R$4;""<> ""&E3)*NB.SI($R$5;""<> ""&E3)*NB.SI($R$6;""<> ""&E3)" & _
          "*NB.SI($R$7;""<> ""&E3)*NB.SI($R$8;""<> ""&E3)*NB.SI($AW3;""=0"")*NB.SI(AX3;""=0"")*NB.SI(AY3;""=0"")*NB.SI(BA3;""=0"")*NB.SI(BB3;""=0"")*NB.SI(BC3;""=0"")*NB.SI(BD3;""=0"")*NB.SI(BE3;""=0"")" & _
          "*NB.SI(BF3;""=0"")*NB.SI(BG3;""=0"")*NB.SI(BH3;""=0"")*NB.SI(BI3;""=0"")*NB.SI(BJ3;""=0"")*NB.SI(BK3;""=0"")*NB.SI(BL3;""=0"")*NB.SI(BM3;""=0"")*NB.SI(BN3;""=0"")*NB.SI(AI3;""=0"")" & _
          "*NB.SI(G3;"">0"")*NB.SI(G3;""<5"")*NB.SI(Y3;"">0"")*NB.SI(EH3;"">0"")"
          Range("H3:H10000").FillDown
          Range("H3:H10000").Value = Range("H3:H10000").Value
        End Sub
        

        Daniel

        0
    4. Bonjour,

      Est-ce que tu veux un résultat ou une formule en H3:H10000 ?

      Daniel


      0
      1. je voudrais 1 dans chaque bonne ligne en H 

        0