Boucler une fonction Excel

Bonjour à tous !

Je veux boucler une fonction pour alléger le code et faire du vrais VBA et non un enregistrement de macro arrangé

J'aimerais savoir quelle syntaxe il faut utiliser pour faire prendre une variable en argument d'une fonction Excel, si cela est possible.

Dans mon cas, il s'agit de la loi normale.

8mesures.xlsm (38.15 Ko)

voici la partie du code concerné

'calcul de la loi normale'

Dim X As Integer

For X = 2 To 9

Sheets(Feuil2).Cells(28, X).FormulaR1C1 = "=NORM.DIST(R[-25]C,R27CX,R26CX,FALSE)"
        Sheets(Feuil2).Selection.AutoFill Destination:=Range(Cells(28, X), Cells(47, X)), Type:=xlFillDefault

Next X

Merci d'avance pour l'intérêt que vous porter à mon post

Salut,

Ton fichier est un vrai fouillis, tu as une macro qui correspond à la Feuil2, mais tu as uniquement une Feuil1 en place, ta macro enregistrée fait plus de 900 lignes, il y a des modules vides inutiles, tu as tenté de modifier ton code mais on ne sait plus ce qui est d’origine ou non ! Aïe, aïe, aïe !

Dans le fichier ci-joint, dans le module 4, je te fais une démonstration qui pourrait t’aider. La Macro1 est l’enregistrement de la mise en place de formules dans les cellules B25:B27. La Macro2 - à lancer manuellement depuis l'explorateur VBA - te montre comment on peut récupérer le code enregistré afin de créer une boucle à la place de l'enregistrement. Si tu effaces les données en place entre deux essais, tu te rendras compte que les résultats sont absolument identiques.

Tu remarqueras au passage que la partie "=NORMDIST(R[-22]C,R[-22]C[1],R[-22]C[2],FALSE)" n'a pas été modifiée entre ces deux macros.

Par la Macro3, je te montre que tu peux remplacer la mise en place de formules par la mise en place des résultats souhaités. Le nom de la ‘’WorksheetFunction’’ nécessaire est justement trouvé par l’enregistreur de macros, puis il suffit d’inscrire les arguments nécessaires en se basant sur l’enregistrement des arguments de la formule. Tu vois que j’y suis arrivé en ne connaissant absolument pas cette fonction. Afin de pouvoir comparer plus facilement la chose, j’ai placé ces résultats dans la colonne C.

L’avantage de cette dernière solution est que si tu as 1000 résultats à la place de 1000 formules, ton fichier est beaucoup moins lourd.

Si tout ceci ne t’aide pas, crée un fichier-démo dans lequel tu n’enregistres que le passage concerné et explique un peu mieux ton souhait sans modifier le code enregistré.

Amicalement.

6mesures-v1.xlsm (38.90 Ko)

Bonjour Yvouille !

j'atteste ton commentaire sur l'arrangement de l'enregistrement qui n'est pas tout à fait au point, j'ai encore du boulot

je te remercie pour cette démonstration, c'est en effet la syntaxe de la macro 3 que je recherche !

Cordialement,

JB

Rechercher des sujets similaires à "boucler fonction"