Convertir une simple formule en macro

Bonjour à tous,

Il y a quelques mois vous m'avez aidé à rendre opérationnelle le fichier en pièce jointe.

Maintenant j'essaie de l'améliorer et pour cela j'aurais besoin de votre aide.

J'ai deux points:

1) Au lieu d’avoir la formule ci-dessous, je voudrais qu’elle soit intégré dans la macro.

H6: =((E3/SUM(E3:G5))*(H3/(SUM(H3+100))))

2) L'outil ne marche pas si la valeur de la cellule G3 = 0 car c'est marqué "If IsNumeric(.Value) And .Value <> 0 Then n = n + 1" or cette cellule peut être égal à 0 (E3, F3 et H3 non, la valeur sera toujours > 0).

S'il vous plait pouvez m'aider?

Merci

84e316-test.xlsm (231.13 Ko)

Bonjour,

1) Au lieu d’avoir la formule ci-dessous, je voudrais qu’elle soit intégré dans la macro.

H6: =((E3/SUM(E3:G5))*(H3/(SUM(H3+100))))

Pour faire cela, tu fais macro > enregistrer une macro

Tu écris ta formule normalement dans la case

Tu arrêtes l'enregistrement par le carré en bas à gauche

... et tu as ta formule sous forme de macro.

    Range("H6").Select
    ActiveCell.FormulaR1C1 = _
        "=((R[-3]C[-3]/SUM(R[-3]C[-3]:R[-1]C[-1]))*(R[-3]C/(SUM(R[-3]C+100))))"

Merci Steelson d'avoir répondu au point 1. Malheureusement j'ai essayé mais ça ne marche pas.

Malheureusement j'ai essayé mais ça ne marche pas.

Avant macro :

capture d ecran 736

La macro test :

capture d ecran 737

Après macro :

capture d ecran 738

Qu'est-ce qui ne fonctionne pas ?

Bonjour,

C'est peut-être la couleur de la police de la cellule qui pose souci !...

Cdlt.

Bonjour Steelson,

Je cherche à l'intégrer dans la macro existante comme l'example surligné en jaune et si j'utilise ce que tu m'a donné la formule revient à la celulle et je cherche à ce que la formule n'apparaisse plus dans la celulle.

e516 macro example

Bonjour à tous,

Je viens d'essayer les macros ci-dessous mais il y a une erreur que je n'arrive pas à trouver.

Essaie 01: Z = Application.Sum(([E3] / [E3:G5]) * ([H3] / [H3+100]))

Essaie 02: sh.[H6] = Application.Sum(sh.[E3/[E3:G5]]) * (sh.[H3/[H3+100]])

J'espère que vous pouvez m'aider.

Merci.

Lilette

je cherche à ce que la formule n'apparaisse plus dans la celulle.

en effet, ce n'était pas clair pour moi

1) Au lieu d’avoir la formule ci-dessous, je voudrais qu’elle soit intégré dans la macro.

Je passe mon tour car je ne fais pas de calcul avec VBA !

Z = Application.Sum(([E3] / [E3:G5]) * ([H3] / [H3+100]))

J'ai jeté un œil bien que je ne suis pas fan de calculer par VBA. Je ne pense pas que tu puisse écrire [E3:G5] dans le contexte d'une formule VBA. Et puis cela ne me parait pas très logique, la somme ne devrait concerner que Range("E3:G5") ...

Bonsoir Lilette,

Je te laisse essayer ce fichier :

11e316-test.xlsm (234.12 Ko)

* ta formule de départ pouvait être simplifiée (quelques parenthèses inutiles, 2ème fonction Somme inutile)

* dans le code VBA, note bien qu'il y a une nouvelle variable k (regarde sa déclaration et son utilisation)

* note bien qu'il faut éviter une éventuelle erreur de division par zéro ! (d'où variable k & test If)


ça devrait marcher, mais si quelque chose ne va pas, indique clairement quel est le problème rencontré.

si tu as des questions, n'hésite pas à les poser.

à te lire pour la suite.


@Steelson : merci d'avoir aidé Lilette

dhany

Bonjour Lilette,

ta dernière visite sur le forum était le 27 novembre, et toujours pas de retour ? aurais-tu oublié ton sujet ?


si ton sujet est résolu, merci de cliquer sur à droite de (coin haut droit du post)

ça permet aussi de clôturer le fil de la discussion (toi seule peut le faire, car c'est toi qui a créé ce sujet).

dhany

Bonjour Dhany,

Désolée j'avais consulté le message depuis mon téléphone mobile du coup je n'ai pas pu bien regarder. Ce soir je regarderai et reviendrai vers toi.

Merci.

@dhany

Bonsoir Dhany,

J'ai pu enfin télécharger et tester le fichier sur mon ordinateur.

La variable k fonctionne très bien. Merci énormément!

Lilette

Rechercher des sujets similaires à "convertir simple formule macro"