Transformer un calcul en macro
Résoludanielc0 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
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.
-
... 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 SubPour 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 SubDaniel
-
-
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
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 SubDaniel
-
-
Bonjour,
Est-ce que tu veux un résultat ou une formule en H3:H10000 ?
Daniel
-
ok mais est il possible de mettre "1" dans "h" si bon
-
ca ne met rien!
ai essayer...
merci
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
excuse moi c'est tout bon un grand temps de gagner et encore merci