Transformer un calcul en macro

Résolu
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention   -  
danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   -

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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287
     

    ... 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. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
       

      re

      c'est quoi la différence entre les 2

      0
      1. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287 > jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
         

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

        Daniel

        0
    2. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
       

      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
      1. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287 > jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
         

        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
  2. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287
     

    Bonjour,

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

    Daniel


    0
    1. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
       

      je voudrais 1 dans chaque bonne ligne en H 

      0
  3. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
     

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


    0
    1. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287
       

      C'est la seconde macro.

      Daniel

      0
  4. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
     

    ca ne met rien!

    ai essayer...

    merci


    0
    1. danielc0 Messages postés 2181 Date d'inscription   Statut Membre Dernière intervention   287
       

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

      Daniel

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
     

    excuse moi c'est tout bon un grand temps de gagner et encore merci

    0